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

静默安装

有时候使用第三方的插件时我们需要静默安装其提供的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);
}
时间: 2024-08-09 06:24:09

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

三星GT-I8150 ROOT权限获取

网上关于三星GT-I8150的刷机方式很多,我这里亲测一种是很简单的方法: 1.打开手机[设置]->[应用程序]->[开发]->打开平[USB调试]模式: 2.连接电脑后可以用很多工具在给Android手机连接到电脑之后自动安装驱动: 3.在刷机大师官网下载刷机大师最新版 4.点击获取ROOT即可: 5.等待刷机成功即可.

linux在非root权限无外网(只有内网的生产环境)情况下安装nginx+mysql+php

虽然说是非root权限,但是编译php所需要的依赖包还是需要root权限的. 安装之前先保证linux有gcc和g++,因为很多东西都需要这两个库,如果没有,运行以下命令 yum install -y gcc gcc-c++ 一般linux里面都会有,如果已经存在,它会报已经存在无法安装 一.安装nginx 1. 安装nginx前,我们需要安装3个依赖包zlib.pcre.openssl(此需要root权限) yum install -y zlib pcre openssl 2. 如果上面没有无

如何获取红米手机5A的Root权限

红米手机5A能如何拥有了Root超级权限?做开发的人知道,android设备有Root超级权限,如果手机拥有了root相关权限,可以实现更多的功能,举个例子做开发的人公司的营销部门的妹纸,使用一些营销工具都需要在Root超级权限下使用,如果手机没办法获的root的权限,就没办法正常使用具体的功能. 红米手机5A开发版系统版本自身具备root权限管理工具,如果你使用的是红米手机5A稳定版,建议可以先将红米手机5A刷入开发版,再进行root权限获取,下面内容给大伙讲解如何获得红米手机5A的root权

MIUI6系统如何启用root权限的教程

MIUI6系统有没有办法启用了root权限?大家都清楚,Android机器有root权限,如果手机启用了root相关权限,就能够实现更好的功能,举例子,大家单位的营销部门同事,使用某些营销软件都需要在root权限下工作,如果手机没能获的root的权限,就没办法正常使用相关的功能.MIUI6系统开发版系统版本自身拥有root权限管理工具,但是如果你使用的是MIUI6系统稳定版,建议先将MIUI6系统刷入开发版,再进行root权限获取,下面给大伙介绍怎么获得MIUI6系统的root权限.我们可以在M

小米MIX 3获得ROOT权限的步骤

小米MIX 3有没有办法开启Root超级权限?大伙都知道,Android设备有Root超级权限,一旦手机开启root相关权限,可以实现更强大的功能,比如大伙部门的营销部门的妹纸,使用一些营销工具都需要在Root超级权限下执行,如果手机没办法获的root的权限,就无法正常使用具体的功能.小米MIX 3开发版系统本身拥有root权限管理工具,如果你使用的是小米MIX 3稳定版,建议可以先将小米MIX 3刷入开发版,再进行root权限获取,下面流程给大家讲解怎么获得小米MIX 3的root权限.我们可

Android 请求root权限实现静默安装

这几天在做一个新的功能,需要用到静默安装,所以在网上找了一些静默安装的资料就在这里记录一下吧.其实实现静默安装的原理就是请求Android手机的root权限,通过执行Linux命令来安装APK到手机系统,其实代码不是很多,就在这里列一下吧,以后用的时候可以直接翻出来: 1 public class MyThread extends Thread { 2 private String path; 3 4 public MyThread(String path) { 5 // TODO Auto-g

Debian普通用户获取root权限|sudo的安装与配置

Debian系统的普通用户需要安装软件时,往往会收到“Permission denied”的提示,这时候需要root权限.那么如何在不登陆超级管理员账户的前提下拥有root权限呢?对于大多数Linux系统来说,我们可以通过“sudo”命令来获取root权限,或者通过“su”登陆超级管理员账户来进行各种需要root权限的操作. 然而,Debian系统好像默认不安装sudo,所以下面将讲解“如何安装sudo及配置其sudoers文件” 首先登陆超级管理员账户,在 Terminal 命令行内输入 su

Android 静默安装/后台安装& Root permission

Android 静默安装/后台安装& Root permission 静默安装其实很简单,今天在网上找资料找半天都说的很复杂,什么需要系统安装权限.调用系统隐藏的api.需要系统环境下编译.需要跟systemUI同进程什么的.我不知道他们真的实现了静默安装实现方式,亲测效果跟豌豆荚一样,并且实现起来非常简单: 1.支持静默安装的机器必须Root,这个不需要我多讲了. 2.使用pm指令安装即可.     3.特别注意 PM指令不支持中文,也就说路径中有中文会导致安装失败! 关键代码如下: exec

Linux下非root权限安装与使用GDAL库的方法

学习GDAL的话推荐两个网站. GDAL的官方文档:www.gdal.org 李民录老师的博客:http://blog.csdn.net/liminlu0314/article/category/777646 下面进入正题. 笔者的系统为RHEL4. 建议Linux的使用者习惯非root权限的操作,这是一个好习惯,在工作中会很有帮助. 首先安装GDAL依赖库PROJ.4和GEOS. PROJ.4是提供投影坐标系相关操作的库,GEOS是提供空间分析计算相关的库.都是开源的项目,可以自行Google