制作Android分区镜像

1 python生成一个sector数据

def get_oem_bootmode():

Header size

SECTOR_SIZE_IN_BYTES = 512

header = [0 for i in \

range(SECTOR_SIZE_IN_BYTES)]

magic

The ord() built-in function in

Python converts a character

into an ordinal integer number.

header0:7 = [ord('p'), ord('i'), ord('d'),

ord('9'), ord('0'), ord('9'), ord('1'), ord('0')]

output = StringIO.StringIO()

for i in header:

output.write(struct.pack("B", i))

content = output.getvalue()

output.close()

only need 512 bytes

return content:512

2 制作ext4分区镜像

文件名:make_ko_img.sh

#!/bin/sh

MY_PATH=${PWD}

TARGET_DIR={MY_PATH}/out/target/product/{TARGET_PRODUCT}

KO_DIR=${TARGET_DIR}/ko/lib/modules

TOOL_DIR=${MY_PATH}/out/host/linux-x86/bin

rm ${TARGET_DIR}/ko* -rf

mkdir --parents ${KO_DIR}

cp {TARGET_DIR}/vendor/lib/modules/my_driver.ko {KO_DIR}

fastboot只接受Android sparse image(稀疏镜像格式)

Android 8

#{TOOL_DIR}/make_ext4fs -l 8M -s -a ko {TARGET_DIR}/ko.img ${TARGET_DIR}/ko/

Android 10

make_ext4fs -l 8M -s -a ko {TARGET_DIR}/ko.img {TARGET_DIR}/ko/

#{TOOL_DIR}/simg2img {TARGET_DIR}/ko.img ${TARGET_DIR}/ko.ext4

-l 8M是分区大小,make_ext4fs最小分区大小是8M,小于该值会导致编译失败

-a ko是指这个img用于Android,挂载点是/ko

makefile中调用:

MK_KO_IMG_SCRIPT := $(LOCAL_PATH)/path/to/make_ko_img.sh

$(MK_KO_IMG_SCRIPT)

3 Abbreviations

FRP:Android Factory Reset Protection

相关推荐
闻道且行之2 小时前
TurboOCR:基于PP-OCRv6的极速Windows离线OCR工具,深度解析3.4GB依赖背后的技术架构
c++·人工智能·python·qt·机器学习·ocr
许彰午3 小时前
95_Python内存管理与垃圾回收
开发语言·python
骄阳如火4 小时前
Python 性能深度剖析:从“被诟病的慢”到“Rust 重塑”的拐点
python
满怀冰雪4 小时前
03-第一个 Paddle 程序:Tensor 创建、计算与设备管理
人工智能·python·paddle
CClaris5 小时前
大模型量化从0到1(九):用 llama.cpp 把模型转成 GGUF 并跑本地推理
人工智能·pytorch·python·深度学习·llama
学编程的小虎5 小时前
SenseVoice微调
人工智能·python·自然语言处理
诸葛说抛光5 小时前
国内大型汽车改装展览会定展 佛山改装 佛山汽车赛事
python·汽车
chouchuang5 小时前
day-030-综合练习-笔记管理器
开发语言·笔记·python
乖巧的妹子6 小时前
Python基础核心知识点详解:内置函数、运算符、字符串方法、数据结构与类型转换
python
幸福清风6 小时前
Python 完美处理Excel合并单元格:拆分填充+自动合并
python·excel·合并单元格·拆分单元格