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

相关推荐
web3.08889996 小时前
微店商品详情API实用
python·json·时序数据库
知乎的哥廷根数学学派6 小时前
基于数据驱动的自适应正交小波基优化算法(Python)
开发语言·网络·人工智能·pytorch·python·深度学习·算法
sunfove6 小时前
将 Python 仿真工具部署并嵌入个人博客
开发语言·数据库·python
Learner6 小时前
Python类
开发语言·python
2501_941329727 小时前
门及其组件定位识别_YOLO13-C3k2-PoolingFormer改进模型研究
python
Ancelin安心7 小时前
kali-dirsearch的使用
linux·运维·服务器·python·计算机网络·web安全·网络安全
努力学习的小洋7 小时前
Python训练打卡Day5离散特征的处理-独热编码
人工智能·python·机器学习
Sherry Wangs8 小时前
【ML】机器学习进阶
人工智能·python·机器学习
X1A0RAN8 小时前
python 借助 paramiko 库执行 SSH命令报错:input is not a terminal 解决方式
开发语言·python·ssh
百***78758 小时前
Grok-4.1与GPT-5.2深度对比:技术差异、适用场景及Python集成指南
java·python·gpt