gpt4 book ai didi

android - 如何以编程方式访问android根目录(/system/app)?

转载 作者:行者123 更新时间:2023-11-29 21:45:11 25 4
gpt4 key购买 nike

我在 asset 文件夹中有一个 apk 文件。
现在我需要创建一个程序来安装该 apk 文件作为系统应用程序。
可以通过以下步骤将该 apk 文件手动复制到 sdcard 中,

$ adb push MyApk.apk /sdcard/ 
$ adb shell
$ su
$ mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
$ cat /sdcard/MyApk.apk > /system/app/MyApk.apk
$ pm install /system/app/MyApk.apk

但是有没有可能通过代码来实现呢?

最佳答案

引用以下代码在RootTools的帮助下将用户应用程序apk移动到系统应用程序apk中。方法。

     PackageInfo paramPackageInfo = null;
try {
paramPackageInfo = this.getPackageManager().getPackageInfo(
this.getPackageName(), 0);
} catch (NameNotFoundException e) {
e.printStackTrace();
}

ApplicationInfo localApplicationInfo = paramPackageInfo.applicationInfo;

String str1 = "/system/app/" + localApplicationInfo.packageName
+ ".apk";
String str2 = "busybox mv " + localApplicationInfo.sourceDir + " "
+ str1;

RootTools.remount("/system", "rw");
RootTools.remount("/mnt", "rw");

CommandCapture command = new CommandCapture(0, str2,
"busybox chmod 644 " + str1);

try {
RootTools.getShell(true).add(command).waitForFinish();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
} catch (RootDeniedException e) {
e.printStackTrace();
}

RootTools.remount("/system", "ro");
RootTools.remount("/mnt", "ro");

在您的应用程序中使用上述代码时,Busybox 和 super 用户应用程序是必需的。

关于android - 如何以编程方式访问android根目录(/system/app)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16058277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com