Android:以编程方式将apk复制到/ system / app
我试图从我的java代码中安装一个系统应用程序,到目前为止,我还没有取得任何成功。
以下是我迄今为止所做的:
android:sharedUserId="android.uid.system"
。 我一直在为Runtime.getRuntime.exec("su")
尝试(尝试,然后再尝试一些Runtime.getRuntime.exec("su")
。 我打算将系统分区安装为rw
,为apk安装一个cat
,然后进行系统分区ro
。 以下是命令列表:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system<br>
cat /sdcard/application.apk > /system/app/application.apk<br>
mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system<br><br>The application.apk here is the app being installed from the installer app. This app is also signed with platform key, and has the sharedUserId configured.
INSTALL_PACKAGES
权限。 我尝试了一些exec(“”)格式的变体,包括在每个命令中使用'su -c'
。 我得到了“断管”异常和安全异常。 有时候,我没有发现异常,但文件没有被复制。
请让我知道我在这里失踪。 有没有人得到这个工作?
谢谢!
我继续挖掘,这里是结果:
/* Until we have something better, only root and the shell can use su.*/
myuid = getuid();
if (myuid != AID_ROOT && myuid != AID_SHELL) {
fprintf(stderr,"su: uid %d not allowed to sun", myuid);
return 1;
}
ChainsDD(超级用户)和氰基mod通过实现他们自己的su.c来解决这个问题:https://github.com/CyanogenMod/android_system_su/blob/master/su.c
/system/app
什么特别之处? 这似乎是这样的事实,即该分区在非根设备上是只读的,防止修改/卸载应用程序。 https://android.stackexchange.com/questions/17871/what-are-the-differences-between-a-system-app-and-user-app
使用平台密钥和sharedUserId = system
签名的应用程序对我而言是“足够好”的,我没有必要将其复制到/ system / app。
我现在接受这个答案。
链接地址: http://www.djcxy.com/p/59575.html上一篇: Android : programmatically copying apk to /system/app
下一篇: In Linux, simulate slow traffic incoming traffic to port e.g. 54000