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
|
@Override
|
||||||
public void onPackageRemoved(String packageName, int uid) {
|
public void onPackageRemoved(String packageName, int uid) {
|
||||||
if (mWrappedObserver != null) {
|
if (mWrappedObserver != null) {
|
||||||
|
|||||||
@@ -63,6 +63,8 @@ public abstract class PackageManagerInternal {
|
|||||||
public interface PackageListObserver {
|
public interface PackageListObserver {
|
||||||
/** A package was added to the system. */
|
/** A package was added to the system. */
|
||||||
void onPackageAdded(@NonNull String packageName, int uid);
|
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. */
|
/** A package was removed from the system. */
|
||||||
void onPackageRemoved(@NonNull String packageName, int uid);
|
void onPackageRemoved(@NonNull String packageName, int uid);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -129,6 +129,11 @@ public class PermissionMonitor {
|
|||||||
sendPackagePermissionsForUid(uid, getPermissionForUid(uid));
|
sendPackagePermissionsForUid(uid, getPermissionForUid(uid));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPackageChanged(@NonNull String packageName, int uid) {
|
||||||
|
sendPackagePermissionsForUid(uid, getPermissionForUid(uid));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPackageRemoved(String packageName, int uid) {
|
public void onPackageRemoved(String packageName, int uid) {
|
||||||
sendPackagePermissionsForUid(uid, getPermissionForUid(uid));
|
sendPackagePermissionsForUid(uid, getPermissionForUid(uid));
|
||||||
|
|||||||
@@ -2155,6 +2155,8 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
|
|
||||||
if (allNewUsers && !update) {
|
if (allNewUsers && !update) {
|
||||||
notifyPackageAdded(packageName, res.uid);
|
notifyPackageAdded(packageName, res.uid);
|
||||||
|
} else {
|
||||||
|
notifyPackageChanged(packageName, res.uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log current value of "unknown sources" setting
|
// 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
|
@Override
|
||||||
public void notifyPackageRemoved(String packageName, int uid) {
|
public void notifyPackageRemoved(String packageName, int uid) {
|
||||||
final PackageListObserver[] observers;
|
final PackageListObserver[] observers;
|
||||||
@@ -24987,5 +25005,6 @@ interface PackageSender {
|
|||||||
void sendPackageAddedForNewUsers(String packageName, boolean sendBootCompleted,
|
void sendPackageAddedForNewUsers(String packageName, boolean sendBootCompleted,
|
||||||
boolean includeStopped, int appId, int[] userIds, int[] instantUserIds);
|
boolean includeStopped, int appId, int[] userIds, int[] instantUserIds);
|
||||||
void notifyPackageAdded(String packageName, int uid);
|
void notifyPackageAdded(String packageName, int uid);
|
||||||
|
void notifyPackageChanged(String packageName, int uid);
|
||||||
void notifyPackageRemoved(String packageName, int uid);
|
void notifyPackageRemoved(String packageName, int uid);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,6 +59,11 @@ public class PackageManagerServiceTest {
|
|||||||
public void notifyPackageAdded(String packageName, int uid) {
|
public void notifyPackageAdded(String packageName, int uid) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void notifyPackageChanged(String packageName, int uid) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notifyPackageRemoved(String packageName, int uid) {
|
public void notifyPackageRemoved(String packageName, int uid) {
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user