android - 如何将应用程序/apk 转换为系统/用户应用程序,包括拆分 apk 应用程序

标签 android apk root android-install-apk

背景

没有 root,我知道可以使用 Intent ( here) 安装一个普通的 APK。

鉴于 root,我知道可以使用 this 安装它.

这将像正常安装过程一样安装应用程序,作为用户应用程序。

还有一种安装拆分 apk 应用程序的方法 ( here ),尽管出于某种原因我没有成功使用它。

问题

我想知道如何将应用转换和/或安装为系统安装应用,然后再转换为用户应用。

这包括尚未安装的应用和已安装的应用的 APK 文件。

我发现了什么

我找到了一些非常古老的方法来将现有应用程序(或安装新应用程序)转换为系统应用程序( here ,例如或 here ),说(简而言之)我应该移动APK 文件放入 /system/app/ 路径。

事实是,这在过去可能行得通,但现在行不通了。我认为这是因为 /system/app/ 上的应用程序现在以不同的方式存在:每个应用程序都有一个文件夹,其中包含一些文件。

至于转换回用户应用,我找不到。将拆分的 apk 应用程序安装到系统应用程序并将其转换回用户应用程序也是如此。

事实上,我记得 Play 商店中有一些应用程序(例如 this one)可以很好地将其他应用程序转换为系统应用程序(使用 root)- 现在什么也做不了。

问题

  1. 将应用安装/转换为系统应用的方法何时起作用?怎么又不行了?

  2. 在新旧 Android 版本上将应用安装/转换为系统应用,然后再转换回用户应用,应该怎么做?

  3. split-apk 应用程序(例如:AirBnb 应用程序)或至少已安装的应用程序是否可能发生同样的事情?

最佳答案

据我所知,定义系统应用程序的过程随着时间的推移发生了变化。 Privileged Permission Whitelisting AOSP 文档可以帮助您:

Privileged applications are system applications located in the /system/priv-app directory on the system image. Historically, device implementers had little control over which signature|privileged permissions could be granted to privileged apps. Starting in Android 8.0, implementors can explicitly whitelist privileged apps in the system configuration XML files in the /etc/permissions directory. Apps not explicitly listed in these XML files are not granted privileged permissions.

关于android - 如何将应用程序/apk 转换为系统/用户应用程序,包括拆分 apk 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55669921/

相关文章:

BackPress 上的 Android 仅使用 finish() 达到前 3 个 Activity

android - 可以在同一个 APK 中放置两个包吗?

android - 从手机卸载服务/apk

zip - 使用 Ionic Zip 将 zip 中的文件夹解压到另一个目录的根目录(不包含 zip 中包含的文件夹)

android - 有时 saveInBackground 的回调永远不会被调用

android - 位图大小超出 VM 预算

java - 无法序列化 HashMap

java - 从 Instant App 下载并安装 apk(无需在 Playstore 中发布)

Docker:如何在容器中禁用 root 用户?