Does anyone know (specially @KodularCreator) why the Package_Utilities component adds READ_/WRITE_EXTERNAL_STORAGE permissions to the Manifest and requests READ permission?
Take a look at the @Taifun’s package manager, same thing…App Inventor Extensions: Package Manager | Pura Vida Apps
These informations are all present in the app package in the Internal Storage, so there is no need to ask for EXTERNAL_STORAGE permissions.
See my blocks:
If the permissions were declared in the Manifest (as it is the case at the moment), I get the following (with APK):
(Note: As you can see Label3.text = false, although READ was granted.)
If I remove the permissons (READ / WRITE) from the Manifest beforehand (as it should be), I get the following:
This means that these permissions are undoubtedly not needed.
So my question: why does this component add these permissions to the Manifest?
It shouldn’t, so it seems to be a bug.
Here is my test app (removed permissions from the Manifest) to check this:
test_permission_new_zipAlign.apk (4.8 MB)
Here is the same APK without removed permissions (Kodular version):
test_permission.apk (4.8 MB)
This extension is not comparable, but the Tools extension App Inventor Extensions: Tools | Pura Vida Apps and this (correctly) does not require any permissions.
I am not sure but this is because of block
Get Package Icon
A possible reason:
If you think that block returns a path to existing image then you are probably wrong.Because it creates a new image from bitmap and then returns path to newly created icon.
So it needs WRITE and READ permission.
If you don’t mind then have a look at this:
Correct. This is the reason.
As I wrote, the component asks only for READ and does not request WRITE permission, so with this block you get “ERROR”:
test_permission2.apk (4.8 MB)
What error do you get?
Label7.Text = ERROR
(see attached apk)
And what happens when you show icon on image?
Means setting image picture to app icon path.
P.S. Due to some reasons I had to reinstall windows without any backup…so everything is lost including android emulater.And my phone has power issues.
I don’t have to try, I’ll get an error …
If I ask for WRITE permission in Screen.Initialize, I get the following:
So what should I learn from this block? Nothing. So if this redundant (needless) block is removed (.GetPackageIcon), then this component does not require any permissions.
You mean that it should ask for WRITE permission also.
I have a little knowledge about permissions and its usage
Maybe but it is quite useful and important block.
I’m curious about it, so to what extent?
Btw, nobody has ever used it before because the necessary permission was / is missing (… and has anyone complained?).
This bug is noted. Will be fixed soon.
… which means, that
- the block (.GetPackageIcon) and the permissions (READ / WRITE) are removed or
- WRITE permission is (also) requested?
The block will NOT be removed.
The permission will be instead only asked if the block is used.