diff options
author | Sander Alewijnse <salewijnse@google.com> | 2014-05-13 17:44:25 +0100 |
---|---|---|
committer | Sander Alewijnse <salewijnse@google.com> | 2014-05-20 10:39:25 +0100 |
commit | 95fb7ee253cdb00a2d9ccf6955afc63e6b399ffa (patch) | |
tree | 7184a74c10478ccbeb3c83600acf4b2bd4a82ca7 /src/com/android | |
parent | d5ebb032f25f0fcb6775a6e2ece4cb6838f48b1a (diff) | |
download | android_packages_apps_PackageInstaller-95fb7ee253cdb00a2d9ccf6955afc63e6b399ffa.tar.gz android_packages_apps_PackageInstaller-95fb7ee253cdb00a2d9ccf6955afc63e6b399ffa.tar.bz2 android_packages_apps_PackageInstaller-95fb7ee253cdb00a2d9ccf6955afc63e6b399ffa.zip |
Prevent sideloading if UserManager flag is set for current user.
Using the flag UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES.
If true, this overrides the secure INSTALL_NON_MARKET_APPS flag.
Change-Id: I4d9628f0ce35d585d4416adfb421e74cbf01fd86
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/packageinstaller/PackageInstallerActivity.java | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java index a11e11eb..ccea9176 100644 --- a/src/com/android/packageinstaller/PackageInstallerActivity.java +++ b/src/com/android/packageinstaller/PackageInstallerActivity.java @@ -37,6 +37,7 @@ import android.content.pm.VerificationParams; import android.net.Uri; import android.os.Bundle; import android.os.SystemClock; +import android.os.UserManager; import android.provider.Settings; import android.support.v4.view.ViewPager; import android.util.Log; @@ -330,12 +331,18 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen startActivity(launchSettingsIntent); finish(); } - + private boolean isInstallingUnknownAppsAllowed() { - return Settings.Global.getInt(getContentResolver(), - Settings.Global.INSTALL_NON_MARKET_APPS, 0) > 0; + UserManager um = (UserManager) getSystemService(USER_SERVICE); + + boolean disallowedByUserManager = um.getUserRestrictions() + .getBoolean(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES, false); + boolean allowedBySecureSettings = Settings.Secure.getInt(getContentResolver(), + Settings.Secure.INSTALL_NON_MARKET_APPS, 0) > 0; + + return (allowedBySecureSettings && (!disallowedByUserManager)); } - + private boolean isInstallRequestFromUnknownSource(Intent intent) { String callerPackage = getCallingPackage(); if (callerPackage != null && intent.getBooleanExtra( |