静默安装介绍
来源:互联网 发布:游戏聊天软件 编辑:程序博客网 时间:2024/06/05 23:07
最近在研究静默安装,研究了一周,本来就放弃了,这个真的不是太容易,一般接触过linux和源码开发的开发者,还是可以的,但是对于做应用层开发的开发者来说就太难, 这里也不多说了,我把代码贴出来
下面是android4.0以上的静默代码
package com.zcsj.qianmingjmaz;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String fileName = Environment.getExternalStorageDirectory() + "/UC.apk";
install(fileName);
}
public String install(String apkAbsolutePath ){
String[] args = { "pm", "install", "-r", apkAbsolutePath };
String result = "";
ProcessBuilder processBuilder = new ProcessBuilder(args);
Process process = null;
InputStream errIs = null;
InputStream inIs = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int read = -1;
process = processBuilder.start();
errIs = process.getErrorStream();
while ((read = errIs.read()) != -1) {
baos.write(read);
}
baos.write("/n".getBytes());
inIs = process.getInputStream();
while ((read = inIs.read()) != -1) {
baos.write(read);
}
byte[] data = baos.toByteArray();
result = new String(data);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (errIs != null) {
errIs.close();
}
if (inIs != null) {
inIs.close();
}
} catch (IOException e) {
e.printStackTrace();
}
if (process != null) {
process.destroy();
}
}
return result;
}
}
在清单文件添加权限 当然这些权限是报错的,需要在源码下编译 ,这点网上也很少说,
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.DELETE_PACKAGES" />
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
- 静默安装介绍
- 常用软件的静默安装方法介绍
- 静默安装
- 静默安装
- 静默安装
- 静默安装
- 静默安装
- 静默安装
- 静默安装
- 静默安装
- 静默安装
- 静默安装
- 静默安装
- pm命令介绍与包名信息查询(静默安装)
- 静默安装和静默卸载
- Android 静默升级,静默安装
- 静默安装apk,静默卸载apk
- android静默安装、静默卸载apk方法
- HDU 5014-Number Sequence
- CSRF攻击与防御
- 数据结构之队列基本实现
- linux 下svn的安装和使用
- 启动页面设置
- 静默安装介绍
- 使用colorMatrix
- 【SSH进阶之路】Hibernate基本原理
- iOS 7.1企业应用证书无效问题解决方案
- Mina、Netty、Twisted一起学(七):发布/订阅(Publish/Subscribe)
- 操作系统遇到的笔试面试题
- 常用的宏定义
- c变量的生命周期
- 深入浅出 RPC - 浅出篇