在app中静默安装其它apk的方法
来源:互联网 发布:苹果声场测试软件 编辑:程序博客网 时间:2024/05/16 17:43
1.判断设备是否有root权限 public static boolean hasRootPermission(){ boolean result = false; try { result = new File("/system/bin/su").exists() || new File("/system/xbin/su").exists(); } catch (Exception e) { e.printStackTrace(); } return result; }2.静默安装 这里要用exec("sh")而不是exec("su")!!!!!!!!!!!!!!!
参考了很多静默安装的文章,不是要root权限或者Android源码环境,就是需要使用反射packageManager.installPackage(...)方法,但是该方法需要aidl文件,而导入相应的aidl文件又往往一堆报错。使用pm install
-r 命令进行安装的方法也往往失败,区别就在su和sh这里。
public static boolean silentInstall(String apkPath){ boolean result = false; Process process = null; OutputStream out = null; try { process = Runtime.getRuntime().exec("sh"); out = process.getOutputStream(); DataOutputStream dataOutputStream = new DataOutputStream(out); dataOutputStream.writeBytes("chmod 777 " + apkPath + "\n"); dataOutputStream.writeBytes("LD_LIBRARY_PATH=/vendor/lib:/system/lib pm install -r " + apkPath); dataOutputStream.flush(); dataOutputStream.close(); out.close(); int value = process.waitFor(); if (value == 0) {//成功 result = true; } else if (value == 1) { // 失败 result = false; } else { // 未知情况 result = false; } } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } return result;}3.在manifest文件中加入权限 <uses-permission android:name="android.permission.INSTALL_PACKAGES" />4.使用adb工具把apk安装到system/app/路径下(安装于该路径下的应用,可以相应的权限)方法如下:adb push appmarket.apk /sdcard/ // 上传要安装的文件,为安装做准备。adb shellsu // 切换到 root 用户。如果没有获得 Root 权限,这一步不会成功。mount //显示当前mount情况mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system // 让分区可写。cat /sdcard/appmarket.apk > /system/app/appmarket.apk // 安装mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system // 还原分区属性,只读。exitexit5.大功告成
0 0
- 在app中静默安装其它apk的方法
- APK类似静默安装的方法
- android静默安装、静默卸载apk方法
- APP流氓大法之apk 静默安装
- 关于apk的 静默安装
- 静默安装apk的实现
- [Android]实现静默安装APK的两种方法
- [Android]实现静默安装APK的两种方法
- [Android]实现静默安装APK的两种方法
- [Android]实现静默安装APK的两种方法
- [Android]实现静默安装APK的两种方法
- [Android]实现静默安装APK的两种方法
- 【Android】实现静默安装APK的两种方法
- [Android]实现静默安装APK的两种方法
- [Android]实现静默安装APK的两种方法
- [Android]实现静默安装APK的两种方法
- [Android]实现静默安装APK的两种方法
- 实现静默安装APK的两种方法
- CentOS release (Linux)上无法识别NTFS格式U盘的解决方法
- 198. House Robber (dp)
- DNS同时使用TCP和UDP?
- Mac Safari和AppStore不能联网,而chrome可以联网解决办法
- sql别名
- 在app中静默安装其它apk的方法
- 将变量写入磁盘文件的方法
- python定时替换文件内容
- hadoop中MapReduce多种join实现实例分析
- 剑指offer题解【二维数组中的查找】-java
- 车牌号码验证
- 简单 写解析文件csv 文件操作 在写游戏时常常用到
- 第7周 C语言程序设计(新2版) 例题 1.6数组(无法编译)
- java String字符串中 ==和equal区别