Android
文章平均质量分 92
洛奇看世界
中山大学毕业,某芯片公司高级技术支持工程师,十几年的行业资深老油条,2b 狗主人,一个喜欢运动的老爹,一只热爱生活的程序猿。
展开
-
如何下载和编译 Android 源码?
网上关于如何下载 Android 源码和编译的文章很多,其中最常见的就是 Android 官方文档。即使有官方文档,但因为访问这些文档需要科学上网的原因,很多人并没有阅读过,所以不断有朋友在我的 OTA 讨论群和 OTA 的 VIP 答疑群里问如何下载和编译 Android 源码?如何制作升级包?本文对到底该如何下载和编译 Android 源码?如何制作和使用升级包?进行手把手解释说明。原创 2023-08-05 22:30:56 · 2055 阅读 · 0 评论 -
Android 虚拟 A/B 详解(七) 升级中用到了哪些标识文件?
如果你在分析某个问题时,碰巧遇到了这 3 个标识文件(/metadata/ota/snapshot-boot, /metadata/ota/rollback-indicator 和 /metadata/ota/allow-forward-merge),你都知道这些标识(indicator)文件中写了什么内容,是做什么用的吗?你知道这些文件是何时创建,何时更新,何时销毁的吗?原创 2023-02-18 11:18:34 · 3352 阅读 · 0 评论 -
Android 虚拟 A/B 详解(六) 升级中的状态数据保存在哪里?
对于虚拟 A/B 系统来说,其虚拟的基础是 snapshot,核心是 libsnapshot 库,而 libsnapshot 中,一切操作都又交由类 SnapshotManager 处理,所以如没有搞懂 SnapshotManager 类的行为,很难说你掌握了 Android 虚拟 A/B 系统的运作方式。libsnapshot 的源码位于 system/core/fs_mgr/libsnapshot 目录下面,,本篇和接下来的几篇会详细分析 libsnapshot 代码,完成后再回到虚拟 A/B 升级原创 2023-02-17 21:40:45 · 3913 阅读 · 4 评论 -
Android OTA 升级专栏文章导读
从 2017 年起,我陆续写了一些 Android OTA 升级相关的文章,主要介绍从 Android 7.1 开始引入的 A/B 升级系统,包括从早前的 A/B 系统,到后来的动态分区,再到最近的虚拟 A/B 分区,以及最新的一些 Android OTA 话题。毫不夸张的说,这是目前全网关于 Android OTA 升级最系统,最全面的专栏,没有之一。原创 2023-02-13 23:56:35 · 7695 阅读 · 1 评论 -
编译 Android 时如何指定输出目录?
偶尔会有朋友问编译 Android 时如何指定输出目录? 这里有两种情况:一是如何将 Android 默认的输出目录 out 改到其它位置?二是指定某个模块的输出目录。本文说明如何指定 Android 普通编译和 dist 编译时的输出目录。以及如何指定某个模块的输出目录。原创 2023-02-10 21:00:00 · 4900 阅读 · 0 评论 -
谷歌官方 Android 设备和代号对照表
读 Android 代码时,在 `device/google` 目录下会有很多设备代号命名的目录,但我自己又搞不清这些代号到底对应哪些设备,本文根据 Android Factory Image 下载页面([Factory Images for Nexus and Pixel Devices](https://developers.google.cn/android/images))的信息整理了这些代号和设备的关系。原创 2022-04-05 16:38:15 · 5876 阅读 · 0 评论 -
Android A/B System OTA分析(六)如何获取 payload 的 offset 和 size
上一篇《Android A/B System OTA分析(五)客户端升级的参数》提到升级时 offset 和 size 参数分别用于升级时设置远程文件中 payload 数据的起始地址和长度,但并没有提到如何获得这个 offset 和 size 值。本篇详细说明如何计算和获取这两个参数。原创 2022-01-14 17:20:05 · 3768 阅读 · 16 评论 -
Android A/B System OTA分析(五)客户端参数
针对群里特别多人问 Android 升级时的 offset 和 size 参数问题,本篇从命令行开始,一步一步向下跟踪 offset 和 size 参数的传递,主要流程包括,命令行参数到客户端参数解析,客户端如何将参数通过 binder 服务传递给服务端,服务端再将参数设置到 HttpFetcher,然后在具体的实现中根据是本地文件还是远程文件进行不同的处理。原创 2022-01-11 13:09:36 · 2960 阅读 · 5 评论 -
Android Q 10.1 KeyMaster源码分析(二) - 各家方案的实现
文章目录写在之前1. 文档2. keymaster结构对比3. `system\keymaster`下的模块4. keymaster 4.0实现4.1 Broadcom 私有实现4.2 Android 默认的基于软件的实现4.3 Trusty 实现4.4 Goldfish 实现4.5 QualComm 私有实现5. 关于 KeyMaster 的注释文档广告写在之前这两篇文章是我2021年3月初看KeyMaster的笔记,本来打算等分析完KeyMaster和KeyStore以后再一起做成一些列贴出来,后原创 2021-07-21 23:39:20 · 3334 阅读 · 4 评论 -
Android Q 10.1 KeyMaster源码分析(一) - KeyMaster相关目录和文件
写在之前这两篇文章是我2021年3月初看KeyMaster的笔记,本来打算等分析完KeyMaster和KeyStore以后再一起做成一些列贴出来,后来KeyStore的分析中断了,这一系列的文章就变得遥遥无期。今天群里聊天时有个朋友问到文章的事,我觉得可能多少还有些价值,做了一些脱敏后发出来,希望对你阅读KeyMaster代码有些帮助,尤其阅读代码的方法,如何从0开始查找,分析代码。相关文章:本文分两部分,第一部分演示我是如何查找并分析代码的,如果觉得第二部分太啰嗦,请直接跳转到第二部分,关于原创 2021-07-21 18:51:14 · 2492 阅读 · 4 评论 -
从本地Android代码恢复官方文档
题图: Photo by Sigmund on Unsplashhttps://unsplash.com/photos/59yRYIHWtzY最近打算基于老版本Android N (7.1)的代码研究下KeyMaster,但苦于没有官方文档。Android官方网站https://source.android.com上虽然有文档,但是这些文档基本上都比较新,大都针对当前的Android Q(11)更新了,和老版本Android对应不上。另外一个原因是,不知名的神秘力量导致https://sour..原创 2021-03-02 16:36:23 · 423 阅读 · 0 评论 -
repo manifest, 如何导出并使用清单文件?
题图:Photo by Pankaj Patel on Unsplash本文原创发布于微信公众号“洛奇看世界”。本文主要介绍’repo manifest’命令的使用,如果只对结论感兴趣,请直接跳转到 [第4节 总结]。说明:本文基于repo v1.12.37和repo launcher 1.23文中manifest文件有时也称为清单文件文中对40个字符的commit id进行...原创 2019-01-05 01:49:50 · 10859 阅读 · 4 评论 -
repo命令帮助信息汇总(附生成脚本)
有时想查看repo命令的帮助信息,但是每次都需要去某个repo仓库下运行"repo help cmd"命令很不方便,所以这里将其统一汇总到一起。repo命令比较多,以前每个命令都单独运行然后抓取输出,这次写了个脚本,自动运行并保存输出。本文主要分文两个部分,第1部分汇总repo命令的帮助信息;第2部分附上批量运行repo命令并抓取输出的脚本,输出格式有两种,包括纯文本方式和markdown方式,...原创 2019-01-11 15:15:19 · 2620 阅读 · 1 评论 -
Android脚本envsetup.sh逐行分析
编译Android的第一步是执行source build/envsetup.sh设置编译相关的环境,里面到底都做了什么呢?本文对其内容进行了逐行分析,史上第一个对envsetup.sh进行的逐行分析,真的是逐行啊~~我也够佩服我自己的耐心了,如果你对其中的某个函数或功能不了解,值得进来看一看。原创 2017-06-13 17:03:27 · 6523 阅读 · 1 评论 -
Android A/B System OTA分析(四)系统的启动和升级
Android从7.0开始引入新的OTA升级方式,`A/B System Updates`,这里将其叫做`A/B`系统,涉及的内容较多,分多篇对`A/B`系统的各个方面进行分析。本文为第四篇,系统的启动和升级。本文为洛奇看世界(guyongqiangx)原创,转载请注明出处。文章链接:https://blog.csdn.net/guyongqiangx/article/details/72604355原创 2017-05-21 20:01:09 · 28751 阅读 · 32 评论 -
Android A/B System OTA分析(三)主系统和bootloader的通信
Android从7.0开始引入新的OTA升级方式,`A/B System Updates`,这里将其叫做`A/B`系统,涉及的内容较多,分多篇对`A/B`系统的各个方面进行分析。本文为第三篇,主系统和bootloader的通信。本文为洛奇看世界(guyongqiangx)原创,转载请注明出处。文章链接:https://blog.csdn.net/guyongqiangx/article/details/72480154原创 2017-05-18 18:11:54 · 26284 阅读 · 8 评论 -
Android A/B System OTA分析(二)系统image的生成
Android从7.0开始引入新的OTA升级方式,`A/B System Updates`,这里将其叫做`A/B`系统,涉及的内容较多,分多篇对`A/B`系统的各个方面进行分析。本文为第二篇,系统image的生成。`image`这个词的含义很多,这里指编译后可以烧写到设备的文件,如`boot.img`,`system.img`等,统称为镜像文件吧。原创 2017-05-10 12:05:42 · 23021 阅读 · 20 评论 -
Android A/B System OTA分析(一)概览
Android从7.0开始引入新的OTA升级方式,A/B System Updates,这里将其叫做A/B系统。`A/B`系统涉及的内容较多,分多篇对`A/B`系统的各个方面进行分析。本文为第一篇,概览。原创 2017-05-07 16:31:57 · 61659 阅读 · 43 评论