summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorSander Alewijnse <salewijnse@google.com>2014-05-13 17:44:25 +0100
committerSander Alewijnse <salewijnse@google.com>2014-05-20 10:39:25 +0100
commit95fb7ee253cdb00a2d9ccf6955afc63e6b399ffa (patch)
tree7184a74c10478ccbeb3c83600acf4b2bd4a82ca7 /src/com/android
parentd5ebb032f25f0fcb6775a6e2ece4cb6838f48b1a (diff)
downloadandroid_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.java15
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(