Can disable PreInstall Application in Settings->App->App info.
But limited PreInstall.
See Source in Android-4.0.3_r1.
packages\apps\Settings\src\com\android\settings\applications
- InstalledAppDetails.java
private void initUninstallButtons() { mUpdatedSysApp = (mAppEntry.info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0; boolean enabled = true; if (mUpdatedSysApp) { mUninstallButton.setText(R.string.app_factory_reset); } else { if ((mAppEntry.info.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { enabled = false; if (SUPPORT_DISABLE_APPS) { try { // Try to prevent the user from bricking their phone // by not allowing disabling of apps signed with the // system cert and any launcher app in the system. PackageInfo sys = mPm.getPackageInfo("android", PackageManager.GET_SIGNATURES); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setPackage(mAppEntry.info.packageName); Listhomes = mPm.queryIntentActivities(intent, 0); if ((homes != null && homes.size() > 0) || (mPackageInfo != null && mPackageInfo.signatures != null && sys.signatures[0].equals(mPackageInfo.signatures[0]))) { // Disable button for core system applications. mUninstallButton.setText(R.string.disable_text); } else if (mAppEntry.info.enabled) { mUninstallButton.setText(R.string.disable_text); enabled = true; } else { mUninstallButton.setText(R.string.enable_text); enabled = true; } } catch (PackageManager.NameNotFoundException e) { Log.w(TAG, "Unable to get package info", e); } } } else { mUninstallButton.setText(R.string.uninstall_text); } } // If this is a device admin, it can't be uninstall or disabled. // We do this here so the text of the button is still set correctly. if (mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) { enabled = false; } mUninstallButton.setEnabled(enabled); if (enabled) { // Register listener mUninstallButton.setOnClickListener(this); } }
The following System applications can not be disabled.
- Update from Market.
- Application has Activity with Intent.CATEGORY_HOME.(= Launcher Application)
- Application has same signature of System. ( = System Application)
If you set to disable, Application Icon in App List do not show.
No comments:
Post a Comment