linux系统导航怎么刷安卓系统升级,自定义Android系统升级流程
流程#
参考链接###
创建系统升级app###
一、使用AndroidStudio创建系统app。
二、声明权限,具备读写外置存储设备的权限以及重启设备的权限。
三、修改配置文件,添加coreApp = true,android:sharedUserId = android.uid.system,将app声明为系统app。
四、在窗口添加一个按钮,并添加其点击响应事件。
五、在按钮响应事件中,调用RecoverySystem.installPackage(Context,File),其中FIie就是你的Update.zip升级包的位置。
六、调用完成后,将会自动进入升级模式。
将app拷贝到系统路径下###
参考内置系统app流程文章
制作Update.zip升级包###
一、通常来说,android源码已经自带了制作工具,只需要进入android源码目录即可。
二、输入如下命令
1、 . build/envsetup.sh
2、 lunch (选择你的update.zip打包的配置,也可以进行第二步,直接来到第三步)。
3、 make otapackage
三、执行完上面命令后,就完成了打包工作,将生成的update.zip拷贝到指定的设备目录下即可。
原理#
1、 系统升级在系统设置中关于选项里面,这段的源码位于
源码目录/packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java
通过阅读源码可以知道,系统升级选项在找不到系统升级应用的时候,会从选项里面进行删除。
public static boolean updatePreferenceToSpecificActivityOrRemove(Context context,
PreferenceGroup parentPreferenceGroup, String preferenceKey, int flags) {
Preference preference = parentPreferenceGroup.findPreference(preferenceKey);
if (preference == null) {
return false;
}
Intent intent = preference.getIntent();
if (intent != null) {
// Find the activity that is in the system image
PackageManager pm = context.getPackageManager();
List list = pm.queryIntentActivities(intent, 0);
int listSize = list.size();
for (int i = 0; i < listSize; i++) {
ResolveInfo resolveInfo = list.get(i);
if ((resolveInfo.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)
!= 0) {
// Replace the intent with this specific activity
preference.setIntent(new Intent().setClassName(
resolveInfo.activityInfo.packageName,
resolveInfo.activityInfo.name));
if ((flags & UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY) != 0) {
// Set the preference title to the activity's label
preference.setTitle(resolveInfo.loadLabel(pm));
}
return true;
}
}
}
// Did not find a matching activity, so remove the preference
parentPreferenceGroup.removePreference(preference);
return false;
}
二、 根据上面这段源码可知,系统升级app不但需要具备相应的action,还必须是系统app才会被检测到,并且被显示出来。可在如下路径下的文件查看到需要的action
源码目录/packages/apps/Settings/res/xml/device_info_settings.xml
可能遇到的问题#
在内置升级的过程中,唯一遇到的问题就是在打包的时候由于py脚本缩进问题导致无法成功打包,网络上查询之后才知道的。
linux系统导航怎么刷安卓系统升级,自定义Android系统升级流程相关推荐
- 玩客云 Linux系统emmc直刷恢复
玩客云 Linux系统emmc直刷恢复 关键词:玩客云 网心云 N1 S805 S905 晶晨 更新于2022年3月10日晚11:47 转载请注明出处,谢谢! 代号:Lightsummer Q:328 ...
- 在ipad上刷android系统更新,全自动刷安卓4.0 索尼SGPT111刷机教程
1刷机前:无需自行准备ROM 给Android平板刷机,其实就是给平板电脑换一个新的操作系统.当然,这个操作系统还是Android系统,只是系统界面.内置应用等内容会与之前有所不同.现在网上有很多适用 ...
- Linux下nvidia压力测试,一种服务器linux系统下GPU压力测试的监控方法与流程
本发明属于服务器测试技术领域,具体涉及一种服务器linux系统下GPU压力测试的监控方法. 背景技术: 随着社会的快速发展,人们对高网络性能.快速存储.大量内存.超高计算能力的GPU的需求越来越大,产 ...
- linux下挂载优盘脚本,一种linux系统下自动挂载U盘的方法与流程
技术领域 本发明涉及服务器维护技术领域,尤其涉及一种linux系统下自动挂载U盘的方法. 背景技术: 不管是测试服务器的维护,还是用户使用的服务器,在维护.更新.使用过程中,需要使用U盘向服务器拷贝文 ...
- linux系统tcl电视刷机包,tcl电视刷机包tcl电视升级包系统修复tcl电视强刷包
本帖最后由 dsfsdfs 于 2015-9-7 20:59 编辑 不知道为什么我之前发的帖子不能编辑自己的帖子,导致没法把大家要的固件发布出来,现在建立一个新帖子来发大家留言要的固件把, 老规矩: ...
- 安卓系统导航测试软件,安卓战GPS 凯立德导航软件实测解析
1凯立德导航软件实测解析 介于目前安卓系统的导航仪逐渐涉入市场,加上众多的安卓手机用户,在安卓系统的带领下,自成一派的导航产品目前也逐渐受到了广大消费者的关注,而这种智能系统与导航软件想搭配的方式也被 ...
- Linux系统下超实用功能——着色、自定义命令
一.着色 首先创建或者打开需要操作的文件 这里总结一下常用四种打开方式: 1 .cat 2.vim 3.tail -x (尾部多少行) 4.head -x (首多少行) 控制着色显示 显示::syn ...
- linux系统的手机刷机包,自己动手制作个性化Linux操作系统手机刷机包
自己动手制作个性化Linux操作系统手机刷机包 本程序用于编辑 Linux 操作系统手机刷机包,运行环境为 Windows XP/2003/Vista.使用该程序可以对 Linux 操作系统手机刷机包 ...
- linux系统tcl电视刷机包,[刷机升级] 史上最全的TCL智能电视固件刷机包下载
强制升级软件_V8-MS90104-LF1V0497 T/ }% h9 s- k' ~! Q# o 机芯:MS600机芯 4 M, F t$ }& ?4 z( q" @$ n7 f ...
最新文章
- windows域控制器恢复
- unity 知道2点计算线段选择角度_影像测量仪实战技巧之角度测量
- ASP.Net 验证正则表达式
- java中int,char,string三种类型的相互转换
- (24)FPGA开发必备(FPGA不积跬步101)
- Jetty 9 正式版发布!
- 想怎么GAN就怎么GAN,一键拯救发际线
- Linux mkdir 与 mkdir -p 的区别
- python的进程和线程
- python抽取html中的链接
- 使用梯度下降与牛顿法求解最小平方和问题
- 计算机机房里面难闻的气味,新装中央空调气味刺鼻为什么?怎么办?-中央空调 异味 刚开...
- delphi xe3 oracle,delphixe3
- 使用Python2.7和火狐浏览器下载QQ空间好友相册
- Adobe FLASH CS6 安装错误解决方法
- 浅论三维标注技术的重要性
- 推荐系统系列:新浪搜索团队FiBiNET理论和代码实现
- vue-element-admin动态加载接口和报错解决
- 一个产品经理,写下的30条调皮经验
- SATA、SAS、SSD三种硬盘存储性能数据
热门文章
- 强强联手 汇丰银行和IBM合作开发量子金融的应用
- 2013_Signal-Processing-Image-Communication泛读
- 关于WiFi-Sensing(无线感知)的未来
- 基于c++下的简易书籍查询系统(C++实验常用)
- Linux more命令
- idea学生认证失败解决办法
- 关于VS2008的MFCGridCtrl的使用方法-冻结首行首列
- 揭秘不同版本CMMI认证证书的真假
- 信息系统监理 服务器,信息系统监理师教程知识点精讲之服务器的选型原则
- 【控制工程1】弹簧系统运动控制方案及simulink仿真