summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/PackageInstallerActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/packageinstaller/PackageInstallerActivity.java')
-rw-r--r--src/com/android/packageinstaller/PackageInstallerActivity.java19
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;
}