Android 开发
李标标
这个作者很懒,什么都没留下…
展开
-
recovery升级界面文字修改方法
升级界面上默认的文字为install system update ,那么可以改吗,那当然可以首先这部分文字的来源recovery/res-xhdpi/images/install_text.png,里面是所有翻译的列表,recovery会对图片进行解析 ,根据传入的locale 使用对应的语言翻译修改方法:bootable/recovery/tools/recovery_l10n使用该工具 可以修改字符串后重新生成图片Main.java中说明的很详细,我也是按着做就完事儿了...原创 2020-05-09 10:41:07 · 1279 阅读 · 0 评论 -
关于Android9.0 断电后升级问题排查分析
最近遇到一个项目Android 9.0的,很多机器出现了开机dm-verify error的错误,排查了很久,做了大量的测试,在此坐下记录分析流程1.问题复现2.问题排查3.问题解决一.问题复现起初的信息并不全,升级的log也是全部跑完了,正好过年期间看了下updaer断电后升级的机制,年后重新看这个问题,发现升级的log其实都是retry的,也就是升级中间关机过测试...原创 2020-03-19 16:43:54 · 1303 阅读 · 0 评论 -
MTK 驱动部分双分区升级原理
在8.0之后MTK平台将tee lk preloder 等分区设置为双分区,升级的时候会将两个分区都进行升级,我们对这一部分做一个简单的分析和了解一、升级包语句ota_from_target_filesdef WriteBlockIncrementalOTAPackage(target_zip, source_zip, output_file): target_info =...原创 2020-03-18 14:09:58 · 1701 阅读 · 0 评论 -
六、Android recovery升级断电保护机制
本篇将具体分析执行写入的流程,,整理完该流程后,将通过升级的log具体分析断电后重新升级的情况一.如何断电后重启继续进入升级几句话总结1.调用framwork接口时会将command写入misc分区2.升级过程中加入retry标志位,如果第二次升级,会将retry++3.misc分区的标志位只有在finlsh_recovery方法中,即使升级过程中掉电,重新上电后,mis...原创 2020-03-11 11:47:14 · 4308 阅读 · 2 评论 -
Android Q动态分区相关初步整理
Android 10上刷机使用了super.img,差分包多了dynamic_partitions_op_list,大致查询了下是新增了动态分区,从编译到生成差分包都做了一些修改,本次先整理大致分析,对这个更新点有初步的认识一、编译方面1.super.img的生成通过编译的log可以看到,super.img的生成makebuild/make/core/Makefi...原创 2020-01-06 18:39:06 · 10690 阅读 · 2 评论 -
partition has unexpected contents概率性问题处理
partition has unexpected contents问题,这类我们一般按刷机流程或者编译流程不对进行处理,不过也有概率性出现不匹配的情况,大概接触了几次,找到了大概的解决方案1、先看last_logpartition has unexpected contents[ 159.613007] failed to read blocks for diff[ 159.61...原创 2019-12-19 09:42:11 · 1049 阅读 · 0 评论 -
高通8.1平台AB升级差分流程问题
最近测试一个项目时高通8.1平台,每个版本做出来差分包有800M,因为版本中有个APK有700M,所以相当于这个APK没有走差分的流程,一开始有两个方面的猜想,第一种是做了限制,操过了一定大小的APK没有执行差分,第二种引入分割理论,将APK分割成小份进行差分一、大致流程二、问题来源三、问题优化四、问题探究一、大致流程这里不详细说,我们只看我们的单个问题,所以先...原创 2019-11-11 18:48:34 · 1317 阅读 · 0 评论 -
六、A/B 升级update_engine分析-Action流程
从上一篇我们已经知道具体的升级写入校验流程都是由InstallPlanAction,DownloadAction,FilesystemVerifierAction,PostinstallRunnerAction,这四个Action完成的,本篇主要讲解这四个的具体流程,我准备这些文件依然按照.h 和.cc进行分析一、InstallPlanAction二、DownloadAction...原创 2019-11-05 11:20:49 · 3401 阅读 · 0 评论 -
五、A/B 升级update_engine分析-UpdateAttempterAndroid
上一篇我们讲到了服务端启动的流程,本篇主要讲解主要升级流程,UpdateAttempterAndroid类包含的内容较多,所以单独讲解,这个文件看了很长时间,大概方法都已经了解,但是想了很久从哪儿开始梳理这个流程,不仅仅是我能看懂,而且能讲出来的很清晰,这是我想做到的,别问,问就是重点一、update_attempter_android.h 简要分析1、继承和构造函数 ...原创 2019-11-05 11:19:40 · 2895 阅读 · 5 评论 -
四、A/B 升级update_engine分析-服务端启动
以下我们将分析AB升级的核心内容 update_engine服务端,我们还是一样,看下该模块的编译文件和依赖。一、相关依赖 1LOCAL_MODULE := update_engine 2LOCAL_SRC_FILES := \ 3 main.cc 4LOCAL_STATIC_LIBRARIES += \ 5 libupdate_engine_android ...原创 2019-11-05 11:18:49 · 1821 阅读 · 0 评论 -
三、A/B 升级update_engine分析-客户端
本编将从两个方面分析客户端,原生测试模块update_engine_client和framwork层接口一、update_engine_client Android原生编译出了测试模块update_engine_client,在system/bin/下,我个人理解是与framekwork 层binder机制连接update_engine服务端是类似的,不过该模块增加了命令行测试的部分...原创 2019-11-05 11:17:59 · 4772 阅读 · 4 评论 -
LowmemoryKiller流程简图
原创 2019-08-09 14:02:19 · 349 阅读 · 0 评论 -
Android SlidingMenu 常见属性
SlidingMenu(侧滑菜单)常见属性总结如下:menu.setMode(SlidingMenu.LEFT);//设置左滑菜单menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑动的屏幕范围,该设置为全屏区域都可以滑动menu.setShadowDrawable(R.drawable.shadow);//设置...原创 2016-05-08 15:31:29 · 358 阅读 · 0 评论 -
Android深度系列—Activity四种启动方式与栈原理
任务其实就是activity 的栈它由一个或多个Activity组成的共同完成一个完整的用户体验, 换句话说任务就是” 应用程序” (可以是一个也可以是多个,比如假设你想让用户看到某个地方的街道地图。而已经存在一个具有此功能的activity 了,那么你的activity 所需要做的工作就是把请求信息放到一个Intent 对象里面,并把它传递给startActivity()。于是地图浏...原创 2016-06-25 15:17:45 · 1673 阅读 · 1 评论