微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Android更新程序脚本安装APK

我正在尝试使用 Android的更新程序脚本语言(Edify?)来通过无线方式将APK安装到我可以控制的嵌入式设备上. Here’s描述语言的链接.

我的第一次尝试如下:

package_extract_file("added_files/data/app/test.apk","/data/app/test.apk");

这导致test.apk自动安装在/data/data/com.acme.test中,但是目录/data/data/com.acme.test/lib是空的,而它应该包含test.so,一个共享库包含在test.apk中. (如果我使用“adb install test.apk”手动安装,则会解压缩库.)

然后我尝试将APK解压缩到/ data而不是/ data / app,这样操作系统就不会自动将其安装到/ data / data中,我可以尝试使用脚本进行安装:

package_extract_file("added_files/data/app/test.apk","/data/test.apk");
run_program("/system/bin/pm","install","/data/test.apk");

这导致以下错误

about to run program [/system/bin/pm] with 3 args
run_program: execv Failed: Exec format error
run_program: child exited with status 1

我不确定为什么会发生上述错误.

有没有办法安装APK并自动提取其共享库?我可以手动安装库,但我希望避免这种情况.

解决方法

我不熟悉Edify,但通过查看文档,package_extract_file()只是将APK作为存档文件提取出来.为什么数据内部/数据/数据最终是奇怪的;你确定不仅仅是以前的安装落后了吗?我建议完全卸载该应用并再次尝试.

在我看来,该特定功能不适合安装该应用程序.您可能想尝试通过命令安装它:

run_program("adb","-r","added_files/data/app/test.apk");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐