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
Related
Problem: I just updated my React-Native/Expo bare workflow project to Expo SDK 43 and am using the MediaLibrary expo package to save files. The problem is that I use MediaLibrary.requestPermissionsAsync and it never asks the user to grant the WRITE_INTERNAL_STORAGE and READ_INTERNAL_STORAGE. Upon further inspection, it looks like it automatically grants these permissions. How do I make it stop doing that?
What I have tried: I have made sure that my Android Manifest has both <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE">and <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE". I have uninstalled the app from my device and reinstalled but still, the permissions are granted. At this point, I am lost on how to fix this because any similar issue I find online only shows a fix for managed workflow Expo projects.
Here are the versions of everything I am using:
Expo: 43.0.3,
Expo MediaLibrary: 13.0.3,
Pixel 3a running Android 12,
React-Native: 0.64.3
If more information is needed let me know.
Edit: I also tested it on a Samsung Device running Android version 9 and it is still automatically granting the WRITE_EXTERNAL_STORAGE and READ_EXTERNAL_STORAGE permissions.
I figured out if I load the app on my device by using npx react-native run-android it would automatically grant the permissions for READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE without asking the user to grant the permission. If instead I went into my android folder for my project and built an APK using ./gradlew assembleRelease (or debug) and sideload the APK onto my device it will ask the user to grant the needed permissions. Doing this also fixed an issue I was having that caused icons I'd imported from #expo/vector-icons to not be bundled with the release version of my app.
I am new to Android development. My current task requires to grant "Capture_audio_output" runtime permission. Android Developer site describes the permission as "Not for use by third-party applications".
I learned from some answers that I can root my phone and install system app. But I don't want to do that way.
I also tried to generate a signed debug apk file, but the app didn't show up even ADB told me it was installed successfully.
CAPTURE_AUDIO_OUTPUT is not a dangerous permission and so does not work with the runtime permission system. CAPTURE_AUDIO_OUTPUT has android:protectionLevel="signature|privileged", so it can only be held by apps that are installed on the privileged (a.k.a., system) partition or are signed by the platform signing key.
Even if you create your release signed APK, still it will not get the privilege of getting this permission. Either you have to root your device or you can't get it.
I have created Android app a while ago.
this app use inside the company. we not uploaded to Google play store. Just install APK.
and now I updated the app with the new resource. while update app install screen ask from users to New or All
see the photo
I want to skip or hide this screen
just install all data without ask.
how can I do this?
thank you
It is the old permissions screen.
If the device is running Android 5.1 or lower, or your app's target SDK is 22 or lower, if you list a dangerous permission in your manifest, the user has to grant the permission when they install the app; if they do not grant the permission, the system does not install the app at all.
You can't skip it.
Instead if the device is running Android 6.0 or higher, and your app's target SDK is 23 or higher you can use the runtime permissions.
Check here for more details.
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.
I am running ManifestExplorer (Download Link) tool in my Android Device. It returns the list of permission required by installed applications. One of the application installed requires
"android.permission.RECEIVE_SECURITY_SMS"
I have tried google but cannot find significance of this permission.
Can anyone help me with the same.