[RK3288][Android6.0] 调试笔记 --- apk安装添加黑名单

    xiaoxiao2021-04-17  56

    Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 出于定制考虑,需要把系统一些不必要的apk移除,但是一个个找又太麻烦, 在不考虑存储空间的情况下可以通过禁止安装的方式来实现. 原理就是在安装apk之前检查当前apk是否处于禁止安装黑名单中,是的话就不让安装. 改动如下: [kris@:~/rk3288/frameworks/base]$ g df diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/Pack index 5842256..9fd15fc 100755 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -5792,8 +5792,34 @@ public class PackageManagerService extends IPackageManager.Stub {          return true;      }   +    /*Kris, 170414, Add app black list that unnecessary to install. { */ +    private boolean is_black_list(String file) { +        String[] black_list = { +               "/system/app/DeskClock", +               "/system/app/Bluetooth", +               "/system/app/Exchange2", +               "/system/app/QuickSearchBox", +               "/system/app/Calendar", +               "/system/priv-app/CalendarProvider", +               "/system/app/Email", +               "/system/app/Development", +               "/system/priv-app/Contacts", +               "/system/priv-app/ContactsProvider", +               "/system/priv-app/DownloadProvider", +               "/system/app/DownloadProviderUi", +               "/system/app/ExactCalculator", +               "/system/app/RkApkinstaller", +               "/system/app/Rk4kVideoPlayer" +       }; + +       List<String> list =Arrays.asList(black_list);    //String数组不能直接用contains,需要转成list. +       return list.contains(file); +    } +    /*Kris, 170414, Add app black list that unnecessary to install. }*/ +      private void scanDirLI(File dir, int parseFlags, int scanFlags, long currentTime) {          final File[] files = dir.listFiles(); +          if (ArrayUtils.isEmpty(files)) {              Log.d(TAG, "No files in app dir " + dir);              return; @@ -5811,6 +5837,13 @@ public class PackageManagerService extends IPackageManager.Stub {                  // Ignore entries which are not packages                  continue;              } +            /*Kris, 170414, Add app black list that unnecessary to install. { */ +            if (is_black_list(file.toString())) { +             Slog.i(TAG, "Ignore install "+ file); +               continue; +            } +            /*Kris, 170414, Add app black list that unnecessary to install. } */ +              try {                  scanPackageLI(file, parseFlags | PackageParser.PARSE_MUST_BE_APK,                          scanFlags, currentTime, null); 参考: https://zhidao.baidu.com/question/1177222105321892139.html
    转载请注明原文地址: https://ju.6miu.com/read-674348.html

    最新回复(0)