我的360手机F4是KINGSUN-F4,我的360手机F4的软件为什么不能移植到sd卡上?下载东西不能下载到sd卡上

& Android实现静默安装其实很简单,今天在网上找资料找半天都说的很复杂,什么需要系统安装权限、调用系统隐藏的api、需要系统环境下编译、需要跟systemUI同进程什么的。我不知道他们真的实现了静默安装没有,反正我按照他们的方式统统都失败了。
& & 下面我来说说我的静默安装实现方式,亲测效果跟豌豆荚一样,并且实现起来非常简单:
& & 1.支持静默安装的机器必须Root,这个不需要我多讲了。
& & 2.使用pm指令安装即可。
&&& 3.特别注意 PM指令不支持中文,也就说路径中有中文会导致安装失败!
& & 关键代码如下:
execRootCmdSilent("pm install -r " + Environment.getExternalStorageDirectory().getPath()+"/xxx.apk")
1 public int execRootCmdSilent(String cmd) {
int result = -1;
DataOutputStream dos = null;
Process p = Runtime.getRuntime().exec("su");
dos = new DataOutputStream(p.getOutputStream());
Log.i(TAG, cmd);
dos.writeBytes(cmd + "\n");
dos.flush();
dos.writeBytes("exit\n");
dos.flush();
p.waitFor();
result = p.exitValue();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (dos != null) {
dos.close();
} catch (IOException e) {
e.printStackTrace();
& & 不需要在Manifest中声明任何权限
原文:http://blog.csdn.net/h3c4lenovo/article/details/9202323
阅读(...) 评论()> 博客详情
摘要: Android 无须获取Root权限静默安装App
一.非Root即可静默安装APK需要满足以下条件
app进程和系统app进程是同一个进程,这个设置&android:sharedUserId="android.uid.system"即可
获得PackageManager的installPackage方法,由于API隐藏和重写,已经很难找到对应的installPackage,目前找到的是installPackage(String,String,String,String),具体参数未知,因此我们需要使用frameworks层的相关代码,获得IPackageManager,并且通过反射获得ServiceManager,实现IPackageInstallObserver相关方法
使用signApk+platform.x509.pem+platform.pk8对app进行签名,使其具有系统签名
认真处理以上条件
二.具体代码截图与说明
有条件的的话,可以从frameworks/base/core/java/android/content/pm下获取这些文件,注意ManifestDigest使用了Google修改过的JDK,有些地方如IntegralString.appendByteAsHex无法使用,因此ManifestDigest.java需要改良。
三.核心代码MainActivity实现
package&com.app.mobile.
import&java.io.F
import&java.lang.reflect.M
import&android.app.A
import&android.content.pm.IPackageInstallO
import&android.content.pm.IPackageM
import&android.net.U
import&android.os.B
import&android.os.E
import&android.os.IB
import&android.os.RemoteE
import&android.util.L
import&android.view.V
import&android.widget.EditT
import&android.widget.TextV
import&android.widget.T
public&class&MainActivity&extends&Activity&{
/****表示安装时以更新方式安装,即app不存在时安装,否则进行卸载再安装****/
private&final&int&INSTALL_REPLACE_EXISTING&=&0x;
/****Apk存储目录,这里我放置在了SDcard的Download目录下****/
private&final&&String&sdPath&=&Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath();
private&TextView&mInstallTv;
private&EditText&apkNameEt;
protected&void&onCreate(Bundle&savedInstanceState)&{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mInstallTv&=&(TextView)&findViewById(R.id.id_install_tv);
apkNameEt&=&(EditText)&findViewById(R.id.id_apkname_Et);
Log.i("Slient",&"sdPath="+sdPath);
mInstallTv.setOnClickListener(new&View.OnClickListener()&{
public&void&onClick(View&v)&{
installPackage();
public&void&installPackage()
String&apkName&=&apkNameEt.getText().toString();
PackageInstallObserver&installObserver&=&new&PackageInstallObserver();
String&apkPath&=&sdPath.concat("/").concat(apkName).concat(".apk");
Class&?&&ServiceManager&=&Class.forName("android.os.ServiceManager");
Method&getService&=&ServiceManager.getDeclaredMethod("getService",&String.class);
getService.setAccessible(true);
IBinder&packAgeBinder&=&(IBinder)&getService.invoke(null,&"package");
IPackageManager&iPm&=&IPackageManager.Stub.asInterface(packAgeBinder);
iPm.installPackage(Uri.fromFile(new&File(apkPath)),&installObserver,INSTALL_REPLACE_EXISTING,&new&File(apkPath).getPath());
}catch&(Exception&e)&{
e.printStackTrace();
installObserver.packageInstalled(null,&-1);
}&catch&(RemoteException&ignore)&{
&*&安装监听
public&class&PackageInstallObserver&extends&IPackageInstallObserver.Stub{
public&void&packageInstalled(String&packageName,&int&returnCode)throws&RemoteException&{
if(returnCode==1)&//返回1表示安装成功,否则安装失败
Toast.makeText(MainActivity.this,&"安装成功!",&Toast.LENGTH_SHORT).show();
Log.e("Installed",&"packageName="+packageName+",returnCode="+returnCode);
Toast.makeText(MainActivity.this,&"安装失败!",&Toast.LENGTH_SHORT).show();
四.实施编译,打包,签名
1.使用Eclipse自带的打包工具,安装普通方式打包(注意,不可使用debug.keystore签名,否则安装不了)
2.将打包的apk使用signApk进行签名,命令如下
java&-jar&signApk.jar&platform.x509.pem&platform.pk8&slientInstall.Apk&newApk.apk
或者新建Java工程如下打包
public&class&TestCase&{
public&static&void&main(String[]&args)&{
Class&?&&SignApk&=&Class.forName("com.android.signapk.SignApk");
Method&mainMethod&=&SignApk.getDeclaredMethod("main",&String[].class);
if(!Modifier.isPublic(mainMethod.getModifiers())&||&!mainMethod.isAccessible())
mainMethod.setAccessible(true);
mainMethod.invoke(null,&new&Object[]{new&String[]{"platform.x509.pem","platform.pk8","slientInstall.apk","newApk.apk"}});
System.out.println("-----O(∩_∩)O哈哈~----签名成功-----O(∩_∩)O哈哈~----");
}&catch&(Exception&e)&{
e.printStackTrace();
System.out.println("-----%&_&%----签名失败-----%&_&%----");
3.然后就可以安装了,开始试试吧
由于开源中国不能上传相应的附近,我把项目上传到CSDN,请自行下载吧
http://download.csdn.net/detail/m_andrain/9018329
人打赏支持
码字总数 258078
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥
& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区经验2295 米
在线时间139 小时
版本V8.2.1.0.MAGCNDL
积分 2422, 距离下一级还需 2578 积分
积分 2422, 距离下一级还需 2578 积分
机型努比亚 Z5S MINI
签到次数123
MIUI版本V8.2.1.0.MAGCNDL
来自网页版
如题,更新了后,又一次进百度应用中心更新软件,突然提示我确认安装(以前都是后台自动安装的!),当时我以为是个别软件的问题,没想到后边的软件全部让我确认!我勒个擦呀!累死我鸟!
然后今下午更新又这样!
道友有没有跟我这样的!
遇到的人越多,MIUI开发组会越关注
分享到微信朋友圈
打开微信,点击底部的“发现”,使用 “扫一扫” 即可将网页分享到我的朋友圈。
经验2627 米
在线时间468 小时
版本V8.1.2.0.KXFCNDI
积分 3439, 距离下一级还需 1561 积分
积分 3439, 距离下一级还需 1561 积分
机型小米平板1
签到次数114
MIUI版本V8.1.2.0.KXFCNDI
通过手机发布
经验23263 米
威望778 米
在线时间2003 小时
版本5.12.17
你永远有批评和反对的自由,但纯粹的谩骂从来是损人不利己的。-
机型小米手机3/4 WCDMA版
签到次数149
MIUI版本5.12.17
来自网页版
关于批量安装问题,下周会有智能延时!请楼主先忍耐一周,等待下周的开发版更新:)
经验46639 米
威望666 米
在线时间2833 小时
版本6.11.25
机型小米手机2/2S
签到次数176
MIUI版本6.11.25
来自网页版
已知问题,正在处理中
有需要,请给我留言
经验2627 米
在线时间468 小时
版本V8.1.2.0.KXFCNDI
积分 3439, 距离下一级还需 1561 积分
积分 3439, 距离下一级还需 1561 积分
机型小米平板1
签到次数114
MIUI版本V8.1.2.0.KXFCNDI
通过手机发布
hanyuo_o 发表于
关于批量安装问题,下周会有智能延时!请楼主先忍耐一周,等待下周的开发版更新:) ...
简直就是瞎折腾。。。。这功能有何实际作用?
经验23263 米
威望778 米
在线时间2003 小时
版本5.12.17
你永远有批评和反对的自由,但纯粹的谩骂从来是损人不利己的。-
机型小米手机3/4 WCDMA版
签到次数149
MIUI版本5.12.17
来自网页版
为了防止流氓软件在用户不知情的情况下装进手机,也是为了安全考虑,现在有的免费的手机加油站有偷偷给手机安装流氓软件的情况哦:)
经验2295 米
在线时间139 小时
版本V8.2.1.0.MAGCNDL
积分 2422, 距离下一级还需 2578 积分
积分 2422, 距离下一级还需 2578 积分
机型努比亚 Z5S MINI
签到次数123
MIUI版本V8.2.1.0.MAGCNDL
来自网页版
收到,谢谢!!!!!!!!!!!
经验359 米
在线时间35 小时
版本6.1.28
积分 437, 距离下一级还需 63 积分
积分 437, 距离下一级还需 63 积分
机型小米手机2/2S
签到次数13
MIUI版本6.1.28
来自网页版
某些软件静默安装需要root的,root后不不管什么软件,连广告也偷偷给你安装,比如百度应用和91,真的碰见过,所以现在我都关闭了静默安装
关注腾讯微博
已关注腾讯微博
关注新浪微博
已关注新浪微博
MIUI 100周
100周发布纪念勋章
小米六周年
小米六周年米粉节
MIUI 3000万
MIUI 3000万发烧友纪念勋章
MIUI 2000万
MIUI 2000万发烧友纪念勋章
1000万用户纪念勋章
MIUI1000万用户纪念勋章
MIUI 7纪念勋章
MIUI五周年
MIUI五周年纪念勋章
小米平板首发纪念勋章
小米平板首发纪念勋章
小米手机3终身荣誉勋章
小米手机3终身荣誉勋章
MIUI三周年
MIUI三周年纪念勋章
百万壁纸评审纪念勋章
已关注极客秀微信
已关注微信
完美图标纪念勋章
完美图标纪念勋章
社区VIP贵宾专属
Copyright (C) 2016 MIUI
京ICP备号 | 京公网安备34号 | 京ICP证110507号查看: 3789|回复: 53
后台静默安装软件源码 (不知道发没发过)
阅读权限50
在线时间 小时
结帖率: (1/1)
是否带模块:
(667.96 KB, 下载次数: 767)
10:26 上传
点击文件名下载附件
下载积分: 精币 -1 枚
原创的连接在哪里,求连接~
转载注明出去!萧天阳的原创!改版权就不对!
您可以选择打赏方式支持楼主
阅读权限10
在线时间 小时
签到天数: 1 天结帖率: (1/1)
顶一下,........
阅读权限30
在线时间 小时
感谢分享!!!!!!
阅读权限10
在线时间 小时
不错 感谢分享
阅读权限30
在线时间 小时
高大上手机用户
下载学习了
阅读权限10
在线时间 小时
结帖率: (1/1)
kanyikanxuexiyixia
阅读权限30
在线时间 小时
不错 感谢分享
阅读权限10
在线时间 小时
结帖率: (0/1)
谢谢分享,最需要这个了!
阅读权限30
在线时间 小时
感谢分享@@@
阅读权限10
在线时间 小时
不知道怎么用啊,有说明吗
精易论坛 - 有你更精彩 /1
来围观微软.net的强大?
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,企业QQ: ,邮箱:@
Powered by
粤公网安备 25馆藏&29535
TA的推荐TA的最新馆藏[转]&[转]&[转]&[转]&[转]&

我要回帖

更多关于 360手机F4 的文章

 

随机推荐