RK3568 Android13 adb或手动安装白名单APP(限制安装)

禁止手动安装非白名单APP(APK),白名单的包名,请替换成自己的包名。在PackageInstallerActivity.java添加修改:

diff --git a/device/rockchip/rk356x/rk3568_t/rk3568_t.mk b/device/rockchip/rk356x/rk3568_t/rk3568_t.mk
index 75ab561814..14682f5422 100755
--- a/device/rockchip/rk356x/rk3568_t/rk3568_t.mk
+++ b/device/rockchip/rk356x/rk3568_t/rk3568_t.mk
@@ -51,4 +51,5 @@ PRODUCT_PROPERTY_OVERRIDES += \
        persist.sys.timezone=Asia/Shanghai \
        persist.sys.statusbar.enable=true \
        persist.sys.navigationbar.enable=true \
+       persist.sys.PackageInstaller.enable=false \
        persist.vendor.orientation = 180
diff --git a/frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java b/frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
index d4ca4a39bd..3ae036b103 100644
--- a/frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
+++ b/frameworks/base/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java
@@ -285,7 +285,7 @@ public class PackageInstallerActivity extends AlertActivity {
             mAppInfo = null;
         }
 
-        if (pkgName.contains("com.tao") || pkgName.equals("com.example.tao") || SystemProperties.getBoolean("persist.sys.statusbar.enable", false)) {
+        if (pkgName.contains("com.tao") || pkgName.equals("com.example.tao") || SystemProperties.getBoolean("persist.sys.PackageInstaller.enable", false)) {
             startInstallConfirm();
         }
     }
diff --git a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
index bfa816bc75..b732bc932f 100644
--- a/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
@@ -280,6 +280,8 @@ public class CentralSurfacesImpl extends CoreStartable implements
             "persist.sys.statusbar.enable";
     private static final String ACTION_SCREEN_SLEEP = 
             "com.systemui.screen_sleep";
+    private static final String ACTION_PACKAGE_INSTALLER =
+            "com.systemui.PackageInstaller";
     private static final String BANNER_ACTION_CANCEL =
             "com.android.systemui.statusbar.banner_action_cancel";
     private static final String BANNER_ACTION_SETUP =
@@ -943,6 +945,7 @@ public class CentralSurfacesImpl extends CoreStartable implements
         if (SystemProperties.getBoolean(SYS_PROPERTY_STATUS_BAR, false)) {
             mStatusBarWindowController.setBarVisibility(View.GONE);
         }
+        SystemProperties.set("persist.sys.PackageInstaller.enable", "false");
 
         if (mWallpaperSupported) {
             // Make sure we always have the most current wallpaper info.
@@ -1431,6 +1434,7 @@ public class CentralSurfacesImpl extends CoreStartable implements
         filter.addAction(ACTION_NAVIGATION_BAR);
         filter.addAction(ACTION_STATUS_BAR);
         filter.addAction(ACTION_SCREEN_SLEEP);
+        filter.addAction(ACTION_PACKAGE_INSTALLER);
         mBroadcastDispatcher.registerReceiver(mBroadcastReceiver, filter, null, UserHandle.ALL);
     }
 
@@ -2707,7 +2711,7 @@ public class CentralSurfacesImpl extends CoreStartable implements
                 if (SystemProperties.getBoolean(SYS_PROPERTY_STATUS_BAR, true) == enable) {
                     return;     //过滤掉重复的广播控制
                 }
-
+                
                 SystemProperties.set(SYS_PROPERTY_STATUS_BAR, String.valueOf(enable));
                 if(enable){
                     mStatusBarWindowController.setBarVisibility(View.GONE);
@@ -2727,6 +2731,12 @@ public class CentralSurfacesImpl extends CoreStartable implements
                         SystemClock.uptimeMillis(), PowerManager.WAKE_REASON_GESTURE, "com.android.systemui:BOUNCER_VISIBLE");
                     Settings.System.putInt(mContext.getContentResolver(),android.provider.Settings.System.SCREEN_OFF_TIMEOUT,0x7fffffff);
                 }
+            } else if(ACTION_PACKAGE_INSTALLER.equals(action)){      //app限制
安装
+                boolean enable = intent.getBooleanExtra("enable", true);
+                if (SystemProperties.getBoolean("persist.sys.PackageInstaller.enable", true) == enable) {
+                    return;     //过滤掉重复的广播控制
+                }
+                SystemProperties.set("persist.sys.PackageInstaller.enable", String.valueOf(enable));
             }
             Trace.endSection();
         }

手动控制禁止/允许ADB安装APK(APP),在PackageManagerShellCommand.java添加修改:

 diff --git a/frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index d632596da2..8f522d2d5b 100644
--- a/frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
+++ b/frameworks/base/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
@@ -219,6 +219,10 @@ class PackageManagerShellCommand extends ShellCommand {
                     return runQueryIntentReceivers();
                 case "install":
-                    // return runInstall();
+                    if (SystemProperties.getBoolean("persist.sys.PackageInstaller.enable", false)) {
+                        return runInstall();
+                    }else{
+                        pw.println("Error: Third-party apps are not allowed to be installed.");
+                        return -1;
+                    }
                 case "install-streaming":
                     return runStreamingInstall();
                 case "install-incremental":

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值