<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[李标标的博客]]></title><description><![CDATA[一些工作心得分享]]></description><link>https://blog.youkuaiyun.com/Android_2016</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Android_2016]]></copyright><item><title><![CDATA[recovery升级界面文字修改方法]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/106014077</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/106014077</guid><author>Android_2016</author><pubDate>Sat, 09 May 2020 10:41:07 +0800</pubDate><description><![CDATA[升级界面上默认的文字为install system update ,那么可以改吗,那当然可以

首先这部分文字的来源recovery/res-xhdpi/images/install_text.png,里面是所有翻译的列表,recovery会对图片进行解析 ,根据传入的locale 使用对应的语言翻译



修改方法:

bootable/recovery/tools/recovery_l10n使用该工具 可以修改字符串后重新生成图片

Main.java中说明的很详细,我也是按着做就完事儿了


...]]></description><category></category></item><item><title><![CDATA[七、recovery ota升级包签名生成/校验]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/105494564</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/105494564</guid><author>Android_2016</author><pubDate>Mon, 13 Apr 2020 18:14:24 +0800</pubDate><description><![CDATA[最近一直有两个疑问 升级包签名的规则和签名文件具体的位置,所以大概看了下签名流程并整理出来

大概理解了下 1.如何签名 2.如何校验



一.相关整理

首先要大概知道的两个内容

1.CMS数字签名

参考:https://www.ibm.com/developerworks/cn/java/j-lo-cms-ticketbasesso/

大概理解为

签名阶段:取数据的hash 使用私...]]></description><category></category></item><item><title><![CDATA[关于Android9.0 断电后升级问题排查分析]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/104970869</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/104970869</guid><author>Android_2016</author><pubDate>Thu, 19 Mar 2020 16:43:54 +0800</pubDate><description><![CDATA[最近遇到一个项目Android 9.0的,很多机器出现了开机dm-verify error的错误,排查了很久,做了大量的测试,在此坐下记录分析流程

1.问题复现

2.问题排查

3.问题解决



一.问题复现

起初的信息并不全,升级的log也是全部跑完了,正好过年期间看了下updaer断电后升级的机制,年后重新看这个问题,发现升级的log其实都是retry的,也就是升级中间关机过

测试...]]></description><category></category></item><item><title><![CDATA[MTK 驱动部分双分区升级原理]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/104943607</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/104943607</guid><author>Android_2016</author><pubDate>Wed, 18 Mar 2020 14:09:58 +0800</pubDate><description><![CDATA[在8.0之后MTK平台将tee lk preloder 等分区设置为双分区，升级的时候会将两个分区都进行升级，我们对这一部分做一个简单的分析和了解



一、升级包语句


ota_from_target_files

def WriteBlockIncrementalOTAPackage(target_zip, source_zip, output_file):
  target_info =...]]></description><category></category></item><item><title><![CDATA[六、Android recovery升级断电保护机制]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/104793320</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/104793320</guid><author>Android_2016</author><pubDate>Wed, 11 Mar 2020 11:47:14 +0800</pubDate><description><![CDATA[本篇将具体分析执行写入的流程,,整理完该流程后,将通过升级的log具体分析断电后重新升级的情况



一.如何断电后重启继续进入升级

几句话总结

1.调用framwork接口时会将command写入misc分区

2.升级过程中加入retry标志位,如果第二次升级,会将retry++

3.misc分区的标志位只有在finlsh_recovery方法中,即使升级过程中掉电,重新上电后,mis...]]></description><category></category></item><item><title><![CDATA[针对amlogicAB升级-编译流程优化]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/104477330</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/104477330</guid><author>Android_2016</author><pubDate>Mon, 24 Feb 2020 14:34:13 +0800</pubDate><description><![CDATA[一、问题描述

最近处理了一个amlogic 7.1 AB项目，升级出现system不匹配的问题，对比发现刷机包中的system与obj包中的不一致，那么就要从编译流程方面排查，将刷机和做包使用的固件进行同步

二、解决思路

说实话一开始其实没什么思路，从编译log入手也看的不是很明白，所以最好的办法就是拆分问题，1、了解make otapackage的大致流程 2、amlogic刷机包的大致生...]]></description><category></category></item><item><title><![CDATA[Android Q动态分区相关初步整理]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/103862493</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/103862493</guid><author>Android_2016</author><pubDate>Mon, 06 Jan 2020 18:39:06 +0800</pubDate><description><![CDATA[Android 10上刷机使用了super.img,差分包多了dynamic_partitions_op_list，大致查询了下是新增了动态分区，从编译到生成差分包都做了一些修改，本次先整理大致分析，对这个更新点有初步的认识



一、编译方面

1.super.img的生成

通过编译的log可以看到，super.img的生成



make


build/make/core/Makefi...]]></description><category></category></item><item><title><![CDATA[partition has unexpected contents概率性问题处理]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/103608981</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/103608981</guid><author>Android_2016</author><pubDate>Thu, 19 Dec 2019 09:42:11 +0800</pubDate><description><![CDATA[partition has unexpected contents问题，这类我们一般按刷机流程或者编译流程不对进行处理，不过也有概率性出现不匹配的情况，大概接触了几次，找到了大概的解决方案

1、先看last_log
partition has unexpected contents

[ 159.613007] failed to read blocks for diff

[ 159.61...]]></description><category></category></item><item><title><![CDATA[高通8.1平台AB升级差分流程问题]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/103015371</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/103015371</guid><author>Android_2016</author><pubDate>Mon, 11 Nov 2019 18:48:34 +0800</pubDate><description><![CDATA[最近测试一个项目时高通8.1平台，每个版本做出来差分包有800M，因为版本中有个APK有700M，所以相当于这个APK没有走差分的流程，一开始有两个方面的猜想，第一种是做了限制，操过了一定大小的APK没有执行差分，第二种引入分割理论，将APK分割成小份进行差分

一、大致流程

二、问题来源

三、问题优化

四、问题探究



一、大致流程

这里不详细说，我们只看我们的单个问题，所以先...]]></description><category></category></item><item><title><![CDATA[六、A/B 升级update_engine分析-Action流程]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/102912469</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/102912469</guid><author>Android_2016</author><pubDate>Tue, 05 Nov 2019 11:20:49 +0800</pubDate><description><![CDATA[从上一篇我们已经知道具体的升级写入校验流程都是由InstallPlanAction，DownloadAction，FilesystemVerifierAction，PostinstallRunnerAction，这四个Action完成的，本篇主要讲解这四个的具体流程，我准备这些文件依然按照.h 和.cc进行分析

一、InstallPlanAction

二、DownloadAction

...]]></description><category></category></item><item><title><![CDATA[五、A/B 升级update_engine分析-UpdateAttempterAndroid]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/102912439</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/102912439</guid><author>Android_2016</author><pubDate>Tue, 05 Nov 2019 11:19:40 +0800</pubDate><description><![CDATA[上一篇我们讲到了服务端启动的流程，本篇主要讲解主要升级流程，UpdateAttempterAndroid类包含的内容较多，所以单独讲解，这个文件看了很长时间，大概方法都已经了解，但是想了很久从哪儿开始梳理这个流程，不仅仅是我能看懂，而且能讲出来的很清晰，这是我想做到的，别问，问就是重点



一、update_attempter_android.h 简要分析

1、继承和构造函数


 ...]]></description><category></category></item><item><title><![CDATA[四、A/B 升级update_engine分析-服务端启动]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/102912419</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/102912419</guid><author>Android_2016</author><pubDate>Tue, 05 Nov 2019 11:18:49 +0800</pubDate><description><![CDATA[以下我们将分析AB升级的核心内容 update_engine服务端，我们还是一样，看下该模块的编译文件和依赖。

一、相关依赖


 1LOCAL_MODULE := update_engine
 2LOCAL_SRC_FILES := \
 3    main.cc
 4LOCAL_STATIC_LIBRARIES += \
 5    libupdate_engine_android ...]]></description><category></category></item><item><title><![CDATA[三、A/B 升级update_engine分析-客户端]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/102912357</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/102912357</guid><author>Android_2016</author><pubDate>Tue, 05 Nov 2019 11:17:59 +0800</pubDate><description><![CDATA[本编将从两个方面分析客户端，原生测试模块update_engine_client和framwork层接口

一、update_engine_client

 Android原生编译出了测试模块update_engine_client，在system/bin/下，我个人理解是与framekwork 层binder机制连接update_engine服务端是类似的，不过该模块增加了命令行测试的部分...]]></description><category></category></item><item><title><![CDATA[一、A/B升级之系统image的生成]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/101554240</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/101554240</guid><author>Android_2016</author><pubDate>Fri, 27 Sep 2019 19:15:05 +0800</pubDate><description><![CDATA[一、A/B升级之系统image的生成

 本篇将对AB升级打开宏开关后make 和 makeotapackage的流程做分析，下面这张图是之前文档中所提到的按照对应文件打开宏开关，即可开启AB升级，但是代码里面针对该宏控也有对应代码处理，本次先分析device 和 build下的修改



一、device主要修改

最初加入了MTK_AB_OTA_UPDATER = yes

去除cach...]]></description><category></category></item><item><title><![CDATA[二、A/B 升级update_engine分析-整体模块]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/101554104</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/101554104</guid><author>Android_2016</author><pubDate>Fri, 27 Sep 2019 19:12:38 +0800</pubDate><description><![CDATA[调试通了AB后确实想好好整理下这部分，其实与传统ota对比，我个人这样划分1、bootloder部分 2、kernel部分 3、framwork部分 4、update_engine核心 5、升级包的制作，而其中的大部分工作都来源于核心update_engine，在这里卡了很久，决定先从这里入手，按照framwork----&gt;(binder机制)update_engine流程(设定对应...]]></description><category></category></item><item><title><![CDATA[block格式差分包合并方法解析]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/100710616</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/100710616</guid><author>Android_2016</author><pubDate>Tue, 10 Sep 2019 20:03:58 +0800</pubDate><description><![CDATA[采用合并差分包的方式，不过要做一些处理，以下是一些分析

1、做出两个差分包

对比两个升级包可以看出，我们只需要处理system 和vendor部分，其他驱动文件原生处理为了整包升级，所以01-03 和 02-03 中是一样的

2、修改01-03升级包，

修改updater-scrypt，以以下格式处理脚本文件

if getprop("ro.build.date.utc") == "15...]]></description><category></category></item><item><title><![CDATA[一些常用实用的命令整理]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/100562711</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/100562711</guid><author>Android_2016</author><pubDate>Thu, 05 Sep 2019 17:37:42 +0800</pubDate><description><![CDATA[编译命令：

1.make -jX
 X表示数字，这个命令将编译Android系统并生成镜像，XX表示可以使用到的CPU核数，这在配置好的电脑上特别有用，公司的16核ubuntu服务器执行make -j16只要不到20分钟，而双核PC上需要4个小时！
2.make snod
 这条命令将重新生成镜像，消耗的时间很少，类似WinCE的makeimg过程，如果你修改了一些数据文件（如音乐、视频）等...]]></description><category></category></item><item><title><![CDATA[关于framwork解密流程优化分析]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/100561941</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/100561941</guid><author>Android_2016</author><pubDate>Thu, 05 Sep 2019 17:06:12 +0800</pubDate><description><![CDATA[一、问题来源

二、问题优化



一、问题来源

 我们都知道Android上如果升级包data区的话，会有解密的过程，这个过程uncryt.cpp中有详细的说明，大致意思就是recovery不能挂载并修改data分区，所以把包放在了dev/block/userdata节点上，并使用block.map文件知名在节点上的存储信息，大部分解密失败的问题在生成block.map时候就失败了

...]]></description><category></category></item><item><title><![CDATA[MTK 9.0打开AB升级宏控]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/98962380</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/98962380</guid><author>Android_2016</author><pubDate>Sat, 10 Aug 2019 11:52:48 +0800</pubDate><description><![CDATA[找到了一份MTKonline的文档



具体的打开方法只是打开了MTK控制的宏开关，我们只需要按照对应的目录和文件添加进去，MTK_AB_OTA_UPDATE只是在原声的AB_OTA_UPDATE又嵌套了一层控制，不过在编译的时候遇到了两个问题

编译错误一：



这个问题的来源是因为disable build cache partition没有加到对应的boardconfig.mk文件中，A...]]></description><category></category></item><item><title><![CDATA[二、Android BCB的作用]]></title><link>https://blog.youkuaiyun.com/Android_2016/article/details/98959849</link><guid>https://blog.youkuaiyun.com/Android_2016/article/details/98959849</guid><author>Android_2016</author><pubDate>Sat, 10 Aug 2019 11:52:34 +0800</pubDate><description><![CDATA[这篇很多部分来源于其他博客，我个人进行了总结，可以串联起来整个ota流程

1、问题来源
2、固件内容与开机流程
3、开机BCB作用
4、recovery升级交互流程

1、问题来源
查看解密流程和recovery.cpp升级流程,多次提到BCB相关
1、从system到recovery需要用到BCB
文件RecoverySystemService.java //设置BCB
public bool...]]></description><category></category></item></channel></rss>