Android 源码使用一个可定制的 编译系统来生成
针对自己 硬件平台的 Android 系统
ex: 确省 编译的 out/target/product/ generic

1> vendor 相关

vender/ 下存放的是 供应商的一些 私有文件,
比如 预编译的一些 核心、驱动等——

厂商的文件 一般是驱动和厂商的东西, 如 高通 和 MTK 自己的文件

ex:
三星、MOTO、HTC 等多家公司都在做 Android 手机, 而每家都要有 自己手机 的 ROM ,
这个里面就要有个 verdor 去识别手机的硬件供应商, 从而保证软硬兼容
ROM:
rom 意为 只读寄存器
数据写入不可改, 存储器掉电不丢失(数据)
手机 rom 指的是存放手机 固件代码 的存储器
通常所说的 刷机 就是重新构建想要的 rom( 如手机操作系统、一些应用)
手机 rom 主要指 手机内部可存储资料、程序、文档的空间
一个完整的 rom 根目录有以下文件夹和文件:
data、 META-IN、 system、 boot.img 4 个文件夹
META-IN 是系统相关信息所在目录
boot.img 是一个镜像文件, 内核核心, 移植 rom 时候用到

相关编译错误: not enough room on vender

Error: Not enough room on vendor (total: 386991 blocks, used: 432067 blocks)

Can’t calculatate how much MB needed!
Please get a real machine and run “adb shell df” to get how many 1K-blocks the vendor partition has.
Then you can get how much MB needed through {(1K-blocks)/1024 - 1702.76}
Out of space? Out of inodes? The tree size of out/target/product/vayu/vendor is 1776185344 bytes (1693 MB), with reserved space of 0 bytes (0 MB).

15:15:11 mkuserimg_mke2fs.py ERROR: Failed to run e2fsdroid_cmd: __populate_fs: Could not allocate block in ext2 filesystem while writing file “libvidhance.so”

e2fsdroid: Could not allocate block in ext2 filesystem while populating file system

mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 386991 4k blocks and 96768 inodes
Filesystem UUID: 488103d4-e2c3-4440-8e0e-ebdfb107f34e
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

__populate_fs: Could not allocate block in ext2 filesystem while writing file “libvidhance.so”

e2fsdroid: Could not allocate block in ext2 filesystem while populating file system

15:15:12 ninja failed with: exit status 1
#### failed to build some targets (03:49:21 (hh:mm:ss)) ####
root@miPC:/home/data/j20s#
解析:
查看 room_information.txt
data@miPC:~/j20s$ vi room_information.txt
time_stamp 2021.03.29-15:14:23
mount_point product
total_blocks 82152
used_blocks 81906
time_stamp 2021.03.29-15:15:11
mount_point vendor
total_blocks 386991
used_blocks 432067
**
看日志 txt 可发现 usd_blocks > total_blocks, 说明 vender 分区大小不足以 安装 file sysytem
原因可能是 当前Android 系统的 预装软件或者其他内容太多, 导致 旧版本的基线上的 vendor 分区不够用

vendor 分区大小不可手动改, 即使更改了也会刷机失败

基线: baseline
是软件文档或 源码的一个 稳定版本, 是进一步开发的基础
基线 为开发工件 提供了 一个 定点 和 快照

可以利用基线重新建立基于某个特定发布版本的配置,这样也可以重现已报告的错误。基线的使用定期建立基线以确保各开发人员的工作保持同步。但是,在项目过程中,应该在每次迭代结束点(次要里程碑),以及与生命周期各阶段结束点相关联的主要里程碑处定期建立基线

注: 如果文章对你有帮助请点赞支持呀//!
有问题可联系博主: snowzhang183@126.com