Merge changes I69cdbb16,I6975e0b7
* changes: notify netd about uid internet permission changes when package replaced Backport PackageListObserver#onPackageChanged.
This commit is contained in:
@@ -51,6 +51,13 @@ public class PackageList implements PackageListObserver, AutoCloseable {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPackageChanged(String packageName, int uid) {
|
||||
if (mWrappedObserver != null) {
|
||||
mWrappedObserver.onPackageChanged(packageName, uid);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPackageRemoved(String packageName, int uid) {
|
||||
if (mWrappedObserver != null) {
|
||||
|
||||
@@ -63,6 +63,8 @@ public abstract class PackageManagerInternal {
|
||||
public interface PackageListObserver {
|
||||
/** A package was added to the system. */
|
||||
void onPackageAdded(@NonNull String packageName, int uid);
|
||||
/** A package was changed - either installed for a specific user or updated. */
|
||||
default void onPackageChanged(@NonNull String packageName, int uid) {}
|
||||
/** A package was removed from the system. */
|
||||
void onPackageRemoved(@NonNull String packageName, int uid);
|
||||
}
|
||||
|
||||
@@ -129,6 +129,11 @@ public class PermissionMonitor {
|
||||
sendPackagePermissionsForUid(uid, getPermissionForUid(uid));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPackageChanged(@NonNull String packageName, int uid) {
|
||||
sendPackagePermissionsForUid(uid, getPermissionForUid(uid));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPackageRemoved(String packageName, int uid) {
|
||||
sendPackagePermissionsForUid(uid, getPermissionForUid(uid));
|
||||
|
||||
@@ -2155,6 +2155,8 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
|
||||
if (allNewUsers && !update) {
|
||||
notifyPackageAdded(packageName, res.uid);
|
||||
} else {
|
||||
notifyPackageChanged(packageName, res.uid);
|
||||
}
|
||||
|
||||
// Log current value of "unknown sources" setting
|
||||
@@ -13761,6 +13763,22 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyPackageChanged(String packageName, int uid) {
|
||||
final PackageListObserver[] observers;
|
||||
synchronized (mPackages) {
|
||||
if (mPackageListObservers.size() == 0) {
|
||||
return;
|
||||
}
|
||||
final PackageListObserver[] observerArray =
|
||||
new PackageListObserver[mPackageListObservers.size()];
|
||||
observers = mPackageListObservers.toArray(observerArray);
|
||||
}
|
||||
for (int i = observers.length - 1; i >= 0; --i) {
|
||||
observers[i].onPackageChanged(packageName, uid);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyPackageRemoved(String packageName, int uid) {
|
||||
final PackageListObserver[] observers;
|
||||
@@ -24987,5 +25005,6 @@ interface PackageSender {
|
||||
void sendPackageAddedForNewUsers(String packageName, boolean sendBootCompleted,
|
||||
boolean includeStopped, int appId, int[] userIds, int[] instantUserIds);
|
||||
void notifyPackageAdded(String packageName, int uid);
|
||||
void notifyPackageChanged(String packageName, int uid);
|
||||
void notifyPackageRemoved(String packageName, int uid);
|
||||
}
|
||||
|
||||
@@ -59,6 +59,11 @@ public class PackageManagerServiceTest {
|
||||
public void notifyPackageAdded(String packageName, int uid) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyPackageChanged(String packageName, int uid) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyPackageRemoved(String packageName, int uid) {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user