From 71df3da8ae22363166c14f88cb191d5f2712ea4c Mon Sep 17 00:00:00 2001 From: wangmingming1 Date: Wed, 14 Aug 2019 15:38:22 +0800 Subject: notify netd about uid internet permission changes when package replaced 1. If a previous version of an app doesn't declare internet permission; 2. The User upgraded it to a new version and the new one does declare the internet permission; 3. The new app are not allowed to access the internet until next boot Bug: 137864893 Test: Manual, just make sure the onPackageChanged would be executed on package changes Change-Id: I69cdbb16a027a9c4e974b32371b1f64a23a51a23 Signed-off-by: wangmingming1 --- core/java/android/content/pm/PackageList.java | 7 +++++++ .../java/com/android/server/connectivity/PermissionMonitor.java | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/core/java/android/content/pm/PackageList.java b/core/java/android/content/pm/PackageList.java index f78175868860..e3eb2c55a2bb 100644 --- a/core/java/android/content/pm/PackageList.java +++ b/core/java/android/content/pm/PackageList.java @@ -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) { diff --git a/services/core/java/com/android/server/connectivity/PermissionMonitor.java b/services/core/java/com/android/server/connectivity/PermissionMonitor.java index fbe2589bea2a..29c4bad2e172 100644 --- a/services/core/java/com/android/server/connectivity/PermissionMonitor.java +++ b/services/core/java/com/android/server/connectivity/PermissionMonitor.java @@ -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)); -- cgit v1.2.3-59-g8ed1b