diff options
Diffstat (limited to 'src/com/android/packageinstaller/PackageInstallerActivity.java')
-rw-r--r-- | src/com/android/packageinstaller/PackageInstallerActivity.java | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java index a11e11eb..67c9f3e4 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( @@ -356,6 +363,10 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen } private boolean isVerifyAppsEnabled() { + UserManager um = (UserManager) getSystemService(USER_SERVICE); + if (um.hasUserRestriction(UserManager.ENSURE_VERIFY_APPS)) { + return true; + } return Settings.Global.getInt(getContentResolver(), Settings.Global.PACKAGE_VERIFIER_ENABLE, 1) > 0; } |