制作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.

header[0: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

相关推荐
用户8356290780511 天前
Python 操作 PowerPoint:添加与设置文本框完整教程
后端·python
InfinteJustice1 天前
SQL如何处理分组后的空值统计_善用COALESCE与聚合函数
jvm·数据库·python
2301_803875611 天前
JavaScript 中按字段对嵌套对象数组进行分组的实用教程
jvm·数据库·python
qq_372154231 天前
如何在 WooCommerce 后台按订单总金额精准筛选订单
jvm·数据库·python
qq_424098561 天前
CSS如何让背景图片在容器内居中_使用background-position设为center
jvm·数据库·python
m0_617881421 天前
如何将扁平数组转换为嵌套树形结构(JavaScript 实现)
jvm·数据库·python
2401_837163891 天前
如何用 window.name 跨域存储不敏感的临时业务数据
jvm·数据库·python
m0_734949791 天前
如何在 Gin 框架中自定义 JSON 响应的 Content-Type 头部
jvm·数据库·python
djjdjdjdjjdj1 天前
bootstrap如何修改警告框(Alert)的边框粗细
jvm·数据库·python
科雷软件测试1 天前
Python中schedule库:轻松实现任务定时自动化
python