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

时间:2019-04-13 21:10:43

标签: android apk root android-install-apk

背景

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

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

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

还有一种方法可以安装拆分式APK应用程序(here),尽管由于某些原因我没有成功使用它。

问题

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

我发现的东西

我发现了一些非常古老的方法,可以将现有应用(或安装新应用)转换为系统应用(例如,herehere),说(简而言之):应该将APK文件移动到/system/app/路径中。

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

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

事实上,我记得Play商店中有一些应用程序(例如this one)可以将其他应用程序很好地转换为系统应用程序(使用root用户)-现在无法执行任何操作。

问题

  1. 将应用安装/转换为系统应用的方法何时生效?为什么它不再起作用了?

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

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

3 个答案:

答案 0 :(得分:1)

下面描述的过程不适用于所有android构建版本,但在大多数情况下都可以按预期运行。

  

1-将应用程序安装/转换为系统应用程序的方法何时进行   工作了吗为什么它不再起作用了?

您有两种安装系统应用程序之类的应用程序的情况。

  1. 构建Android图像时 您可以将想要系统特权的应用程序放在 for (var i = 1; i < 10; i++) { while (true) { try { this.props.someServer.allMessages(this.state.someId,this.state.input); this.setState({input: ''}); } catch (Exception) { console.log ("error, exception encountered, trying again."); continue; } break; console.log ("success!"); } } 文件夹中,并且构建系统将使用平台密钥对其进行签名,并且它将作为系统应用程序工作。

  2. 获得安装映像的root许可后 如果您可以root用户身份访问android系统,则只需将特定应用程序推送到android设备上的try目录即可。

  

2-将应用程序安装/转换为系统应用程序应怎么做,   并返回到旧版和新版Android上的用户应用?

如果要将应用程序作为系统应用程序,则需要在AndroiManifest.xml文件中添加/system/app作为应用程序属性

/system/app
  

3-拆分应用程序是否可能有同样的事情(例如:AirBnb   应用程序),或者至少是已安装的?

以上过程应适用于apk-apk应用程序。但是无法确认,因为我之前没有经验。

答案 1 :(得分:0)

据我所知,定义系统应用程序的过程已随着时间而改变。 Privileged Permission Whitelisting AOSP文档可以为您提供帮助:

  

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

答案 2 :(得分:0)

我在root手机上看到的apk,或者我们称为systemizer apk,它声称可以将任何apk通过它转换为系统apk并再次返回,这是我假设它可以或不能但如果确实如此则很好=} id反编译它和如果我需要代码而不是我自己的项目,看看它会做什么。