Loading core/java/android/content/res/AssetManager.java +38 −31 Original line number Diff line number Diff line Loading @@ -602,7 +602,13 @@ public final class AssetManager implements AutoCloseable { } } } synchronized (this) { if (mObject != 0) { destroy(); mObject = 0; } } } finally { super.finalize(); } Loading Loading @@ -922,8 +928,9 @@ public final class AssetManager implements AutoCloseable { mNumRefs--; //System.out.println("Dec streams: mNumRefs=" + mNumRefs // + " mReleased=" + mReleased); if (mNumRefs == 0) { if (mNumRefs == 0 && mObject != 0) { destroy(); mObject = 0; } } } data/etc/privapp-permissions-platform.xml +1 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ applications that come with the platform <permission name="android.permission.CONTROL_INCALL_EXPERIENCE"/> <permission name="android.permission.GET_ACCOUNTS_PRIVILEGED"/> <permission name="android.permission.MODIFY_PHONE_STATE"/> <permission name="android.permission.STATUS_BAR"/> <permission name="android.permission.STOP_APP_SWITCHES"/> <permission name="com.android.voicemail.permission.READ_VOICEMAIL"/> <permission name="com.android.voicemail.permission.WRITE_VOICEMAIL"/> Loading services/core/java/com/android/server/pm/PackageManagerService.java +33 −11 Original line number Diff line number Diff line Loading @@ -19125,35 +19125,47 @@ public class PackageManagerService extends IPackageManager.Stub int count = 0; final String packageName = pkg.packageName; boolean handlesWebUris = false; final boolean alreadyVerified; synchronized (mPackages) { // If this is a new install and we see that we've already run verification for this // package, we have nothing to do: it means the state was restored from backup. if (!replacing) { IntentFilterVerificationInfo ivi = final IntentFilterVerificationInfo ivi = mSettings.getIntentFilterVerificationLPr(packageName); if (ivi != null) { alreadyVerified = (ivi != null); if (!replacing && alreadyVerified) { if (DEBUG_DOMAIN_VERIFICATION) { Slog.i(TAG, "Package " + packageName + " already verified: status=" + ivi.getStatusString()); } return; } } // If any filters need to be verified, then all need to be. // If any filters need to be verified, then all need to be. In addition, we need to // know whether an updating app has any web navigation intent filters, to re- // examine handling policy even if not re-verifying. boolean needToVerify = false; for (PackageParser.Activity a : pkg.activities) { for (ActivityIntentInfo filter : a.intents) { if (filter.handlesWebUris(true)) { handlesWebUris = true; } if (filter.needsVerification() && needsNetworkVerificationLPr(filter)) { if (DEBUG_DOMAIN_VERIFICATION) { Slog.d(TAG, "Intent filter needs verification, so processing all filters"); } needToVerify = true; // It's safe to break out here because filter.needsVerification() // can only be true if filter.handlesWebUris(true) returns true, so // we've already noted that. break; } } } // Note whether this app publishes any web navigation handling support at all, // and whether there are any web-nav filters that fit the profile for running // a verification pass now. if (needToVerify) { final int verificationId = mIntentFilterVerificationToken++; for (PackageParser.Activity a : pkg.activities) { Loading @@ -19171,13 +19183,23 @@ public class PackageManagerService extends IPackageManager.Stub } if (count > 0) { // count > 0 means that we're running a full verification pass if (DEBUG_DOMAIN_VERIFICATION) Slog.d(TAG, "Starting " + count + " IntentFilter verification" + (count > 1 ? "s" : "") + " for userId:" + userId); mIntentFilterVerifier.startVerifications(userId); } else if (alreadyVerified && handlesWebUris) { // App used autoVerify in the past, no longer does, but still handles web // navigation starts. if (DEBUG_DOMAIN_VERIFICATION) { Slog.d(TAG, "App changed web filters but no longer verifying - resetting policy"); } synchronized (mPackages) { clearIntentFilterVerificationsLPw(packageName, userId); } } else { if (DEBUG_DOMAIN_VERIFICATION) { Slog.d(TAG, "No filters or not all autoVerify for " + packageName); Slog.d(TAG, "No web filters or no prior verify policy for " + packageName); } } } services/core/java/com/android/server/pm/Settings.java +1 −0 Original line number Diff line number Diff line Loading @@ -1380,6 +1380,7 @@ final class Settings { return false; } ps.clearDomainVerificationStatusForUser(userId); ps.setIntentFilterVerificationInfo(null); return true; } Loading Loading
core/java/android/content/res/AssetManager.java +38 −31 Original line number Diff line number Diff line Loading @@ -602,7 +602,13 @@ public final class AssetManager implements AutoCloseable { } } } synchronized (this) { if (mObject != 0) { destroy(); mObject = 0; } } } finally { super.finalize(); } Loading Loading @@ -922,8 +928,9 @@ public final class AssetManager implements AutoCloseable { mNumRefs--; //System.out.println("Dec streams: mNumRefs=" + mNumRefs // + " mReleased=" + mReleased); if (mNumRefs == 0) { if (mNumRefs == 0 && mObject != 0) { destroy(); mObject = 0; } } }
data/etc/privapp-permissions-platform.xml +1 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ applications that come with the platform <permission name="android.permission.CONTROL_INCALL_EXPERIENCE"/> <permission name="android.permission.GET_ACCOUNTS_PRIVILEGED"/> <permission name="android.permission.MODIFY_PHONE_STATE"/> <permission name="android.permission.STATUS_BAR"/> <permission name="android.permission.STOP_APP_SWITCHES"/> <permission name="com.android.voicemail.permission.READ_VOICEMAIL"/> <permission name="com.android.voicemail.permission.WRITE_VOICEMAIL"/> Loading
services/core/java/com/android/server/pm/PackageManagerService.java +33 −11 Original line number Diff line number Diff line Loading @@ -19125,35 +19125,47 @@ public class PackageManagerService extends IPackageManager.Stub int count = 0; final String packageName = pkg.packageName; boolean handlesWebUris = false; final boolean alreadyVerified; synchronized (mPackages) { // If this is a new install and we see that we've already run verification for this // package, we have nothing to do: it means the state was restored from backup. if (!replacing) { IntentFilterVerificationInfo ivi = final IntentFilterVerificationInfo ivi = mSettings.getIntentFilterVerificationLPr(packageName); if (ivi != null) { alreadyVerified = (ivi != null); if (!replacing && alreadyVerified) { if (DEBUG_DOMAIN_VERIFICATION) { Slog.i(TAG, "Package " + packageName + " already verified: status=" + ivi.getStatusString()); } return; } } // If any filters need to be verified, then all need to be. // If any filters need to be verified, then all need to be. In addition, we need to // know whether an updating app has any web navigation intent filters, to re- // examine handling policy even if not re-verifying. boolean needToVerify = false; for (PackageParser.Activity a : pkg.activities) { for (ActivityIntentInfo filter : a.intents) { if (filter.handlesWebUris(true)) { handlesWebUris = true; } if (filter.needsVerification() && needsNetworkVerificationLPr(filter)) { if (DEBUG_DOMAIN_VERIFICATION) { Slog.d(TAG, "Intent filter needs verification, so processing all filters"); } needToVerify = true; // It's safe to break out here because filter.needsVerification() // can only be true if filter.handlesWebUris(true) returns true, so // we've already noted that. break; } } } // Note whether this app publishes any web navigation handling support at all, // and whether there are any web-nav filters that fit the profile for running // a verification pass now. if (needToVerify) { final int verificationId = mIntentFilterVerificationToken++; for (PackageParser.Activity a : pkg.activities) { Loading @@ -19171,13 +19183,23 @@ public class PackageManagerService extends IPackageManager.Stub } if (count > 0) { // count > 0 means that we're running a full verification pass if (DEBUG_DOMAIN_VERIFICATION) Slog.d(TAG, "Starting " + count + " IntentFilter verification" + (count > 1 ? "s" : "") + " for userId:" + userId); mIntentFilterVerifier.startVerifications(userId); } else if (alreadyVerified && handlesWebUris) { // App used autoVerify in the past, no longer does, but still handles web // navigation starts. if (DEBUG_DOMAIN_VERIFICATION) { Slog.d(TAG, "App changed web filters but no longer verifying - resetting policy"); } synchronized (mPackages) { clearIntentFilterVerificationsLPw(packageName, userId); } } else { if (DEBUG_DOMAIN_VERIFICATION) { Slog.d(TAG, "No filters or not all autoVerify for " + packageName); Slog.d(TAG, "No web filters or no prior verify policy for " + packageName); } } }
services/core/java/com/android/server/pm/Settings.java +1 −0 Original line number Diff line number Diff line Loading @@ -1380,6 +1380,7 @@ final class Settings { return false; } ps.clearDomainVerificationStatusForUser(userId); ps.setIntentFilterVerificationInfo(null); return true; } Loading