首页 > 解决方案 > AOSP 阻止安装来自未知来源的应用程序

问题描述

有什么方法可以阻止用户在自定义 android 操作系统中安装来自未知来源的应用程序?

我正在尝试使用 AOSP 源创建 Android 操作系统的自定义变体,在其中我希望允许用户仅安装来自我在构建期间指定的受信任源的应用程序。

阻止启用开发人员选项和 USB 调试。该解决方案应阻止用户从所有可能的来源(如侧载)或通过连接系统安装应用程序。

标签: androidapkandroid-sourcepackage-managershardening

解决方案


我已经满足了相同的要求,并在 Android 8 中实现了它。它使用设备策略控制器来禁用应用安装。它应该仍然可以在新的 Android 版本中使用。

https://cs.android.com/android/platform/superproject/+/master:frameworks/base/services/core/java/com/android/server/pm/UserManagerService.java;l=559

添加以下函数 applyInstallAppsRestritions,并在第 559 行调用它。

private void applyInstallAppsRestritions() {
    synchronized (mRestrictionsLock) {
        Bundle bundle = new Bundle();
        bundle.putBoolean(UserManager.DISALLOW_INSTALL_APPS, true);
        Slog.i(LOG_TAG, "disallow install app by default.");
        mBaseUserRestrictions.append(UserHandle.USER_SYSTEM, bundle);
    }
}

推荐阅读