Installing a simple HelloWorld asks for permission to write to external storage, why? I have not added any request in my manifest? Looking in the logs I see "I/PackageParser(15463): Implicit adding android.permission.WRITE_EXTERNAL_STORAGE to old pkg". I am compiling for Android 1.6 and installing on an Sony Ericsson X10. How do I avoid the request since my HelloWorld does not need any of those permissions and any user might be scared away due to shady permissions?
Installing a simple HelloWorld asks for permission to write to external storage, why?
Because either you do not have a <uses-sdk> element in your manifest or its android:minSdkVersion is set to 3 or lower. See this previous SO question for more.
Related
I upgraded my react-native project to Android 13, now camera-roll is not asking for permission, as it was using before READ_EXTERNAL_STORAGE, and now we have granular permission for READ_MEDIA_IMAGES, READ_MEDIA_AUDIO and READ_MEDIA_VIDEO. I am new to react-native and mobile development, need some help understanding here, that just adding these permissions to the Manifest file won't help, do I also need to specify that we need to ask for READ_MEDIA_IMAGES permission to make it start asking for permission again? I have upgraded the libraries required here like react-native-permissions, camera-roll library and react-native-image-crop as these all were being used and they have now added the granular permissions to their libraries.
I am using react-native-image-crop-picker to access the image picker here,
You don't need permission from android 10 and onwards. You just need to ask storage related permissions for SDK less than android 10.
A detailed answer already given.
ANDROID 13 PERMISSION
recently I get Installed blocked : The app permissions error error when updating my application(in app updating).
I know my app signatures are same because I can install new app manually.
can some know why this happen?
Do you think I need to grant android.permission.INSTALL_PACKAGES while I granted android.permission.REQUEST_INSTALL_PACKAGES? if yes can explain deference of both?
Note: my application updated correctly in many devices!! but in some devices(android Version: 5.1.1) have problem!!!
The INSTALL_PACKAGES permission allows an application to install packages. It is not for use by third-party applications.
Developers of apps that require the ability to download and install other apps via the Package Installer may need to make some changes. If an app uses a targetSdkLevel of 26 or above and prompts the user to install other apps, the manifest file needs to include the REQUEST_INSTALL_PACKAGES permission.
Read more here: https://android-developers.googleblog.com/2017/08/making-it-safer-to-get-apps-on-android-o.html?m=1
I have a problem on some Android 6.0 devices. My Unity application about 200 MB and thats why I have .obb file. After installing the game to Google Play, Samsung Android 6.0 devices gives error about accessing the assets.
If i allow the storage permission manually from Settings -> App Management -> Permissions, the problem disappears. This is happening only some Android 6.0 devices. I have READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE permission in AndroidManifest.xml
Can you help me about this please?
Now is different in android marsmallow. More info here
Now with android 6.0 you must ask for permissions when you go to use this permission, so you need declare in android manifest, and also you must request the permissions you need in the class.
I know that this is not the first Thread about this permission, however the other ones aren't finished or don't help me.
What I need is to inflate KeyEvents using Instrumentation. That works great and is insanely faster than the shell ("input keyevent ") method. But if I want to inject to other apps I catch a SecurityException. That didn't surprise me to much so I added <uses-permission android:name="android.permission.INJECT_EVENTS" /> to my manifest. Eclipse stops to debug this telling me that only system apps can use this permission. So I compiled using the signed apk tool and pushed that apk to /system/app. Rebooted, and guess what
W/PackageManager( 3499): Not granting permission android.permission.INJECT_EVENTS to package com.<....> (protectionLevel=2 flags=0x8be45)
The app is targeted for only one special device. So I know all the specs and it is rooted. But su injection-commands take to long and SuperUser is required. I would love to do that with Instrumentation or maybe there is something else I should try?
The firmware is not written by me, so I don't have the platform key.
Thanks for your help!
EDIT: Got the platform keys (The dev used the normal Google ones), signed and aligned, then pushed the apk to /system/app. Also added android:sharedUserId="android.uid.system" to my manifest. On Boot there is no longer the logcat message. However when I want to send the keysync I still catche the SecurityException. Any ideas?
EDIT2: Here is an excerpt from ps. Seems like the package ist not listed as system
u0_a108 5241 2399 492044 48968 ffffffff 40113ab0 S com.mypackage
Update Use the signtool located here, then go ahead and read on in my blog.
Ok, I got the right platform-keys and it works like a charm now! I signed using http://forum.xda-developers.com/showthread.php?t=1125626
and replaced (renamed the sign.... to testkey....) the testkeys inside signare folder with
signapk-key.platform.x509.pem
signapk-key.platform.pk8
(Google for them)
Also make sure to zipalign and then to copy to /system/app. Installing the .apk the normal way is NOT possible as it is flagged as System app.
I want to add this permission to my Android manifest:
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
But after I paste this permission in my manifest, it tests red underline and says:
permission is only granted to system apps
What can I do?
MODIFY_PHONE_STATE permission is granted to system apps only.
For your information, there are 2 types of Android apps: system & user
User apps are just all your normal app installations through the Google Play Store, Amazon Appstore or sideloading. These go into the /data partition of your Android phone, which is the part of the internal memory made available for user data and apps.
System apps are basically the apps that come pre-installed with your ROM. In a standard Android user environment, the user doesn’t have write access to the /system partition and thus, installing or uninstalling system apps directly isn’t possible.
In order to install an app as a system app on your Android device,
your device must either be rooted or have a custom recovery installed (or both).
That being said, that error is actually wrong because you have a valid code and compilation should work. It would be better if it gave a warning instead. In Eclipse you can easily fix it. Just go to:
Window -> Preferences -> Android -> Lint Error Checking.
Find ProtectedPermission from the list and set the severity to something other than error(info for example). This way your project will still compile.
MODIFY_PHONE_STATE is a system-only permission. System Apps are either pre-installed into a system folder or compiled by a manufacturer using their security certificate.
Hence, if you are trying to do this you are trying to use API which are no longer supported. With Android versions 2.3+ you can monitor incoming calls, but blocking is not allowed (i think from the link you posted thats what you're trying to do).
Android issues if you need to follow: Issue 15022 and Issue 14789
This error appears in SDK 19 onwards, when you change the manifest.
Do Project Clean and Build.
It should clear this error.
just clean your project it will be fine like this :
project > Clean...
There are four types of Permission
Regular
Dangerous
Signed
Signed or System
The first two can be used by Simple Apps Other two can only be used by the app which is build in framework
Because this is the system level permission device developer not grant this so application development tools also warn against this so you have to
Simply Clean project & Rebuild this is it
Find ProtectedPermission from the list in
Window -> Preferences -> Android -> Lint Error Checking.
and set the severity to something other than error(info for example). This way your project will still compile.