流程#

参考链接###

创建系统升级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系统升级流程相关推荐

  1. 玩客云 Linux系统emmc直刷恢复

    玩客云 Linux系统emmc直刷恢复 关键词:玩客云 网心云 N1 S805 S905 晶晨 更新于2022年3月10日晚11:47 转载请注明出处,谢谢! 代号:Lightsummer Q:328 ...

  2. 在ipad上刷android系统更新,全自动刷安卓4.0 索尼SGPT111刷机教程

    1刷机前:无需自行准备ROM 给Android平板刷机,其实就是给平板电脑换一个新的操作系统.当然,这个操作系统还是Android系统,只是系统界面.内置应用等内容会与之前有所不同.现在网上有很多适用 ...

  3. Linux下nvidia压力测试,一种服务器linux系统下GPU压力测试的监控方法与流程

    本发明属于服务器测试技术领域,具体涉及一种服务器linux系统下GPU压力测试的监控方法. 背景技术: 随着社会的快速发展,人们对高网络性能.快速存储.大量内存.超高计算能力的GPU的需求越来越大,产 ...

  4. linux下挂载优盘脚本,一种linux系统下自动挂载U盘的方法与流程

    技术领域 本发明涉及服务器维护技术领域,尤其涉及一种linux系统下自动挂载U盘的方法. 背景技术: 不管是测试服务器的维护,还是用户使用的服务器,在维护.更新.使用过程中,需要使用U盘向服务器拷贝文 ...

  5. linux系统tcl电视刷机包,tcl电视刷机包tcl电视升级包系统修复tcl电视强刷包

    本帖最后由 dsfsdfs 于 2015-9-7 20:59 编辑 不知道为什么我之前发的帖子不能编辑自己的帖子,导致没法把大家要的固件发布出来,现在建立一个新帖子来发大家留言要的固件把, 老规矩: ...

  6. 安卓系统导航测试软件,安卓战GPS 凯立德导航软件实测解析

    1凯立德导航软件实测解析 介于目前安卓系统的导航仪逐渐涉入市场,加上众多的安卓手机用户,在安卓系统的带领下,自成一派的导航产品目前也逐渐受到了广大消费者的关注,而这种智能系统与导航软件想搭配的方式也被 ...

  7. Linux系统下超实用功能——着色、自定义命令

    一.着色 首先创建或者打开需要操作的文件 这里总结一下常用四种打开方式: 1 .cat 2.vim 3.tail -x (尾部多少行) 4.head  -x (首多少行) 控制着色显示 显示::syn ...

  8. linux系统的手机刷机包,自己动手制作个性化Linux操作系统手机刷机包

    自己动手制作个性化Linux操作系统手机刷机包 本程序用于编辑 Linux 操作系统手机刷机包,运行环境为 Windows XP/2003/Vista.使用该程序可以对 Linux 操作系统手机刷机包 ...

  9. linux系统tcl电视刷机包,[刷机升级] 史上最全的TCL智能电视固件刷机包下载

    强制升级软件_V8-MS90104-LF1V0497 T/ }% h9 s- k' ~! Q# o 机芯:MS600机芯 4 M, F  t$ }& ?4 z( q" @$ n7 f ...

最新文章

  1. windows域控制器恢复
  2. unity 知道2点计算线段选择角度_影像测量仪实战技巧之角度测量
  3. ASP.Net 验证正则表达式
  4. java中int,char,string三种类型的相互转换
  5. (24)FPGA开发必备(FPGA不积跬步101)
  6. Jetty 9 正式版发布!
  7. 想怎么GAN就怎么GAN,一键拯救发际线
  8. Linux mkdir 与 mkdir -p 的区别
  9. python的进程和线程
  10. python抽取html中的链接
  11. 使用梯度下降与牛顿法求解最小平方和问题
  12. 计算机机房里面难闻的气味,新装中央空调气味刺鼻为什么?怎么办?-中央空调 异味 刚开...
  13. delphi xe3 oracle,delphixe3
  14. 使用Python2.7和火狐浏览器下载QQ空间好友相册
  15. Adobe FLASH CS6 安装错误解决方法
  16. 浅论三维标注技术的重要性
  17. 推荐系统系列:新浪搜索团队FiBiNET理论和代码实现
  18. vue-element-admin动态加载接口和报错解决
  19. 一个产品经理,写下的30条调皮经验
  20. SATA、SAS、SSD三种硬盘存储性能数据

热门文章

  1. 强强联手 汇丰银行和IBM合作开发量子金融的应用
  2. 2013_Signal-Processing-Image-Communication泛读
  3. 关于WiFi-Sensing(无线感知)的未来
  4. 基于c++下的简易书籍查询系统(C++实验常用)
  5. Linux more命令
  6. idea学生认证失败解决办法
  7. 关于VS2008的MFCGridCtrl的使用方法-冻结首行首列
  8. 揭秘不同版本CMMI认证证书的真假
  9. 信息系统监理 服务器,信息系统监理师教程知识点精讲之服务器的选型原则
  10. 【控制工程1】弹簧系统运动控制方案及simulink仿真