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

问题描述 投票:0回答:3

背景

无需 root,我知道可以使用 Intent 安装单个普通 APK(此处)。

给定 root 权限,我知道可以使用 this 来安装它。

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

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

问题

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

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

我发现了什么

我发现了一些非常古老的方法将现有应用程序(或安装新应用程序)转换为系统应用程序(例如这里这里),说(简而言之)我应该将 APK 文件移至

/system/app/
路径。

事实是,这在过去可能有效,但现在不行了。我认为原因是

/system/app/
上的应用程序现在以不同的方式存在:每个应用程序都有一个文件夹,其中包含一些文件。

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

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

问题

  1. 安装/转换应用程序到系统应用程序的方法何时起作用?怎么现在不行了呢?

  2. 在新旧 Android 版本上,应如何安装/转换应用程序到系统应用程序,然后返回用户应用程序?

  3. 拆分 apk 应用程序(例如:AirBnb 应用程序)或至少已安装的应用程序是否可以实现同样的效果?

android apk root android-install-apk
3个回答
0
投票

据我所知,定义系统应用程序的程序随着时间的推移已经发生了变化。 特权权限白名单 AOSP 文档可能会帮助您:

特权应用程序是位于 系统映像上的 /system/priv-app 目录。从历史上看,设备 实施者几乎无法控制哪些签名|特权 可以将权限授予特权应用程序。从 Android 开始 8.0 中,实现者可以在 /etc/permissions 目录中的系统配置 XML 文件中显式地将特权应用程序列入白名单。应用 未在这些 XML 文件中明确列出的不授予特权 权限。


0
投票

下面描述的过程并不适用于每个 Android 构建版本,但在大多数情况下它会按预期工作。

1 - 什么时候有安装/转换应用程序到系统应用程序的方法 工作了吗?怎么现在不行了?

您有两种情况来安装应用程序,例如系统应用程序。

  1. 构建 Android 镜像时 您可以将您想要系统权限的应用程序放在

    /system/app
    文件夹中,构建系统将使用平台密钥对其进行签名,它将作为系统应用程序运行。

  2. 获得已安装镜像的root权限后 如果您可以以 root 用户身份访问您的 Android 系统,那么您只需将某个应用程序推送到 Android 设备上的

    /system/app
    目录即可。

2 - 将应用程序安装/转换为系统应用程序应该做什么, 并返回用户应用程序,无论是旧版还是新版 Android 版本?

如果您想让您的应用程序成为系统应用程序,您需要在 AndroiManifest.xml 文件中添加

android:sharedUserId="android.uid.system"
作为应用程序属性

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:sharedUserId="android.uid.system"
        android:theme="@style/AppTheme">

对于大多数自定义图像,提供了制造商工具包,可用于通过系统应用程序创建新的图像文件。如果您没有这样的工具,您可以root您的设备并将apk文件推送到

system/app
目录。 根据我的理解,我们没有任何直接的方法将系统应用程序恢复为用户应用程序。您可以做的就是简单地卸载系统应用程序并再次将其安装为用户应用程序。

3 - 对于 split-apk 应用程序来说,同样的事情也可能发生吗(例如:AirBnb 应用程序),或者至少安装了?

上述过程应该适用于 split-apk 应用程序。但无法确认,因为我没有经验。


0
投票

我看到的 root 手机或 w.e 的 apk 被称为 systemizer apk,它声称可以通过它将任何 apk 转换为系统 apk,然后再返回,我假设它可以或不能,但如果它确实可以,那就太好了 =} id 反编译它,看看会发生什么如果我需要代码来代替我自己的项目,它确实可以做这样的事情。

© www.soinside.com 2019 - 2024. All rights reserved.