码迷,mamicode.com
首页 > 其他好文 > 详细

静默安装/ 普通安装与root权限获取相关

时间:2017-02-15 13:44:22      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:else   wait   res   失败   exe   代码   linux命令   flush   time   

静默安装

有时候使用第三方的插件时我们需要静默安装其提供的apk包,静默安装时我们需要获取root权限,如下代码

Process process = Runtime.getRuntime().exec("su");

然后此时获取到的root权限不是整个个应用的,而是Process这个进程

所以此时要进行的root权限相关的操作,就必须通过Process这个进程来获取

ps:file为sd卡中的文件File类型

如下

DataOutputStream dataOutputStream = new DataOutputStream(process.getOutputStream(););
                //执行777 linux命令获取文件的最高权限
                dataOutputStream.writeBytes("chmod 777 " + file.getPath()
                        + "\n"); // 获取文件所有权限
                dataOutputStream
                        .writeBytes("LD_LIBRARY_PATH=/vendor/lib:/system/lib pm install -r "
                                + file.getPath()); // 进行静默安装命令
    // 提交命令
                dataOutputStream.flush();
                // 关闭流操作
                dataOutputStream.close();
                out.close();
                int value = process.waitFor();

                // 代表成功
                if (value == 0) {
                    Log.e("hao", "安装成功!");
                    result = true;
                } else if (value == 1) { // 失败
                    Log.e("hao", "安装失败!");
                    result = false;
                } else { // 未知情况
                    Log.e("hao", "未知情况!");
                    result = false;
                }

value值可以判断安装是否成功

注:try catch 异常捕获代码没有写,可自行添加

//不上心的分隔线

普通安装

普通模式安装,调用系统Intent

public static void install(Context context, String filePath) {
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setDataAndType(Uri.parse("file://" + filePath), "application/vnd.android.package-archive");
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(i);
}

 

静默安装/ 普通安装与root权限获取相关

标签:else   wait   res   失败   exe   代码   linux命令   flush   time   

原文地址:http://www.cnblogs.com/fengfenghuifei/p/6401028.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!