如何将我的应用程序包推送到Android模拟器"/ system/app"文件夹?
我已经尝试过使用:
"adb push myApk.apk/system/app"
它给了我这个:
"failed to copy: ... No space left on device"
Run Code Online (Sandbox Code Playgroud)
虽然从设置 - > sdCard和手机存储,我获得了37Mb的内部可用空间.
这种需求的重点
与权限有关.
我需要拥有INSTALL_PACKAGES权限
,我知道通过将我的应用程序
放在/ system/app中,我获得了该权限.
过去,我曾在此处询问过有关应用程序捆绑/拆分apk文件的共享或备份的问题。
这似乎是几乎不可能完成的任务,我只能找出如何安装拆分后的APK文件,即使如此,也只能通过adb进行:
adb install-multiple apk1 apk2 ...
Run Code Online (Sandbox Code Playgroud)
有人告诉我,实际上应该可以将多个拆分的APK文件合并到一个我可以安装的文件中(在此处),但是没有给出如何做的信息。
这对于将其保存以备后用(备份)可能很有用,因为当前无法在设备内安装split-apk文件。
实际上,这是一个重大问题,我不知道有任何备份应用程序可以处理拆分的APK文件(应用程序捆绑包),其中包括Titanium应用程序。
我拍摄了一个使用应用程序捆绑的示例应用程序,称为“ AirBnb”。
查看文件中包含的内容,这些就是Play商店决定下载的文件:
因此,我尝试输入每个。“基础”是主要的基础,因此我略过了其他基础。对我来说,似乎所有这些文件都包含在其中:
事实是,由于这些都存在于多个地方,所以我不知道如何合并它们。
将这些全部合并为一个APK文件的方式是什么?
是否可以在没有root用户且没有PC的情况下安装拆分的APK文件?过去在备份应用程序(例如Titanium)上可以做到这一点,但只能在普通的APK文件上使用,而不能在应用程序捆绑包(拆分式APK)上使用。
编辑:我设置了赏金。请,如果您知道解决方案,请显示它。显示您经过测试可以正常工作的内容。合并拆分的APK文件或安装它们,这些文件在设备上都没有root权限。
编辑:遗憾的是,无论有没有root,这里的所有解决方案都不起作用,即使我找到了一个成功完成它(有和没有root)的应用程序,它叫做“ SAI(Split APKs Installer)”(我认为存储库在这里,在我悬赏后找到)。
我要设一个新的赏金。请发布新答案的人证明其在有根或无根的情况下均有效。如果需要,请在Github上显示(这里只是重要内容)。我知道这个应用程序无论如何都是开源的,但是对我来说重要的是如何在这里做它并与他人共享,因为目前这里显示的内容是行不通的,并且即使不是真正需要它也需要root用户。
这次,在我看到确实有用的东西之前,我不会给予任何赏金(以前我时间很短,并且把它授予了我认为应该起作用的答案)。
到目前为止,我能够通过以下代码使用 root(在应用程序内)安装 APK 文件:
pm install -t -f fullPathToApkFile
Run Code Online (Sandbox Code Playgroud)
如果我想(尝试)安装到 SD 卡:
pm install -t -s fullPathToApkFile
Run Code Online (Sandbox Code Playgroud)
最近,不确定来自哪个 Android 版本(至少在 Android P beta 上存在问题),上述方法失败,向我显示此消息:
avc: denied { read } for scontext=u:r:system_server:s0 tcontext=u:object_r:sdcardfs:s0 tclass=file permissive=0
System server has no access to read file context u:object_r:sdcardfs:s0 (from path /storage/emulated/0/Download/FDroid.apk, context u:r:system_server:s0)
Error: Unable to open file: /storage/emulated/0/Download/FDroid.apk
Consider using a file under /data/local/tmp/
Error: Can't open file: /storage/emulated/0/Download/FDroid.apk
Exception occurred while executing:
java.lang.IllegalArgumentException: Error: Can't open file: /storage/emulated/0/Download/FDroid.apk
at com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:306) …Run Code Online (Sandbox Code Playgroud)