我正在为私人发行做一个小型应用程序,这样我就不会使用 google play 来安装和更新应用程序。
在我的 MainActivity 中,我将通过 api 检查是否找到了应用更新。如果发现任何更新,我的应用程序将更新后的 apk 文件下载到 SDCard 上的下载文件夹中并通过以下方式安装:
intent.setDataAndType(Uri.fromFile(new File(destination)), "application/vnd.android.package-archive");
它工作正常,但我的问题是用户可以在下载文件夹中获取 apk 文件。所以我决定将文件下载到/data/data/com.xxx.aaa。这个思路,把文件下载到/data...路径下。但是我无法安装apk文件。download folder
我通过以下代码确保 apk 文件存在于其中:
if(new File(destination).exists()){
// apk file is present into download folder.
}
我的方法显示解析错误如下:
我的问题是:
如何从 /data.... 路径安装更新的 apk 文件?
我猜root权限是安装apk的问题。
请帮我。
已编辑的问题:- 要获得根访问我的应用程序,我运行以下命令:
try {
Runtime.getRuntime().exec("su");
}
执行此命令后,我可以列出 /data/data/com.xxx.aaa 路径。并且我已经验证了我下载的 apk 文件显示在此处。
要安装 apk,如评论中所述,我在各种选项中运行mount命令,但没有运气。如图所示,我得到解析错误。
我已经 通过以下方式尝试了安装:
1) mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
2) mount -o rw,remount -t yaffs2 /data/data.com.xxx.aaa/appinfo.apk
3) mount
4) mount /system
我不知道挂载 /data/data/.... 路径的正确方法。如何挂载 /data/data/.... 路径。
请帮我。