- 浏览: 205077 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (195)
- android (153)
- sqlite (1)
- java (3)
- os (4)
- tools (4)
- ResolveInfo 转 packageinf 取信息 (1)
- multimedia (2)
- fastboot (1)
- create user in samba (0)
- android qcn (0)
- windows (0)
- net (2)
- linux (1)
- git (0)
- proguard (0)
- android cpu (1)
- android gts (1)
- MySql (1)
- c/c++ (0)
- network (1)
- python (3)
- AI (1)
- Ultroedit (1)
From: http://blog.csdn.net/zhoumushui/article/details/50766041
进入Recovery并自动升级指定路径下的升级包,OTA将固件包下载到指定路径/sdcard/update.zip,然后执行以下代码进入Recovery执行安装:
private static File RECOVERY_DIR = new File("/cache/recovery");
private static File COMMAND_FILE = new File(RECOVERY_DIR, "command");
private static void recoveryMode(Context context) throws IOException {
String arg = "--update_package=/sdcard/update.zip";
RECOVERY_DIR.mkdirs();
FileWriter command = new FileWriter(COMMAND_FILE);
try {
command.write(arg); // 往/cache/recovery/command中写入recoveryELF的执行参数。
command.write("\n");
} finally {
command.close();
}
PowerManager pm = (PowerManager) context
.getSystemService(Context.POWER_SERVICE);
pm.reboot("recovery"); // 调用PowerManager类中的reboot方法
throw new IOException("Reboot failed (no permissions?)");
}
需要声明REBOOT权限,需要是system uid才能调用该权限。
<uses-permission android:name="android.permission.REBOOT" />
一般应用没有权限,可以在系统应用中开放对应接口,接收到指定广播后执行以上代码。
进入Recovery并自动升级指定路径下的升级包,OTA将固件包下载到指定路径/sdcard/update.zip,然后执行以下代码进入Recovery执行安装:
private static File RECOVERY_DIR = new File("/cache/recovery");
private static File COMMAND_FILE = new File(RECOVERY_DIR, "command");
private static void recoveryMode(Context context) throws IOException {
String arg = "--update_package=/sdcard/update.zip";
RECOVERY_DIR.mkdirs();
FileWriter command = new FileWriter(COMMAND_FILE);
try {
command.write(arg); // 往/cache/recovery/command中写入recoveryELF的执行参数。
command.write("\n");
} finally {
command.close();
}
PowerManager pm = (PowerManager) context
.getSystemService(Context.POWER_SERVICE);
pm.reboot("recovery"); // 调用PowerManager类中的reboot方法
throw new IOException("Reboot failed (no permissions?)");
}
需要声明REBOOT权限,需要是system uid才能调用该权限。
<uses-permission android:name="android.permission.REBOOT" />
一般应用没有权限,可以在系统应用中开放对应接口,接收到指定广播后执行以上代码。
发表评论
-
Android SnappyDB
2018-05-15 11:23 764https://blog.csdn.net/qq_214305 ... -
使用UncaughtExceptionHandler保存全局异常(转)
2018-05-07 15:04 509From: https://blog.csdn.net/dre ... -
android udp
2018-04-10 19:47 480Android之Socket的基于UDP传输 接收方创建步骤: ... -
android DownloadManager
2018-04-10 12:52 460From: https://www.jianshu.com/p ... -
Snackbar 可以交互的Toast
2018-04-08 21:44 640Snackbar 是 Android design sup ... -
android 操作串口
2018-03-19 18:20 485http://blog.csdn.net/akunainian ... -
proguard对 android-support-v4.jar 的配置
2018-03-16 15:32 610-libraryjars libs/android-sup ... -
apk 多个dex
2018-03-16 10:05 885android studio 配置应用生成多个dex ... -
ddmlib 解决android n file explorer 为空问题
2018-03-16 09:27 788百度云:http://pan.baidu.com/s/1sl4 ... -
android 代码混淆
2018-03-15 08:38 925打开混淆开关 Android.mk ... -
menu item 显示icon
2018-03-07 09:32 555@Override public boolean onMenu ... -
ubuntu 脚本切换root用户,并执行其它脚本
2018-03-05 09:58 0#!/bin/bash expect -c" ... -
DrawerLayout 滑动侧边栏
2018-03-01 10:42 0// TODO -
jack-server 多用户编译问题
2018-02-27 10:44 13623),需要同时修改 $HOME/.jack-server/co ... -
更新eclipse 遇到两个问题 Oxygen.2 Release (4.7.2)
2018-02-26 14:28 11641. the file dx.jar was not load ... -
监听系统开关变化
2018-02-05 14:02 763// 转屏开关 /** * Content obse ... -
android 8.0 模块编译命令
2018-02-02 14:42 1131Invoke ". build/envsetup.s ... -
svn checkout 忽略某个文件夹
2018-01-26 11:14 1275android源码更新时, frameworks\compil ... -
eclipse jni
2018-01-19 16:10 456试过,可以运行 http://blog.csdn.net/sb ... -
opencv for android
2018-01-19 14:37 385http://blog.csdn.net/sbsujjbcy/ ...
相关推荐
Android Recovery 代码分析 ...Android Recovery代码分析了Recovery应用程序的入口点、获取命令行参数、获取默认升级固件路径和名称、解析命令、注册升级命令、升级、格式化、还原和wipe data等方面的内容。
通过按下某个按键,使android进入recovery模式,是很好的参考资料
android recovery升级教程
android recovery模式下可用的较大的字体,直接将此头文件放到bootable\recovery\minui目录下,修改graphics.cpp中对原字体头文件的引用为本文件即可。
解决android7.1 ota差分升级没有install-recovery.sh的方法 这是个patch, 解决了升级时提示没有install-recovery.sh的报错的问题 为不浪费你的分数, 请确定你是android7和高通平台才可以.
Android recovery原理讲解,讲解Android recovery启动模式的解析及升级过程。
声明我不是作者,从网上copy的资料,感觉很有用。Android系统Recovery工作原理之使用update.zip升级过程分析
Android系统Recovery模式的工作原理,摘录自网页
Android11 修复user版本,按电源键+音量减键进入recovery模式会进入no command 界面问题.patch
Android手机Recovery模式取证方法研究是指通过使用Android手机的Recovery模式来对手机进行取证,并将其应用于电子数据取证工作中。该方法可以解决当前电子数据取证工作中Android手机镜像提取受限于手机取证设备支持...
android-recovery移植汉化
android-recovery-code.rar android-recovery-code.rar
在使用update.zip包升级时怎样从主系统(main system)重启进入Recovery模式,进入Recovery模式后怎样判断做何种操作,以及怎样获得主系统发送给Recovery服务的命令,这一系列问题的解决是通过整个软件平台的不同...
本例演示了如何使用clockworkmod recovery提供的扩展脚本进行的android手机 recovery升级方法
【转】Android OTA 升级之三:生成recovery.img.doc
android_4.1-recovery
msm8610 recovery image sources
关于Android Recovery模式的介绍,包括流程图,对于了解OTA升级应该是很有用的
如何进入Recovery模式 安卓手机进入Recovery模式方法大全
解决Android手机刷机失败 无法进入Recovery模式 无法开机