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

相关推荐
我叫黑大帅7 分钟前
PyScript-GitHubRepo: 构建高性能GitHub仓库批量下载工具的技术实践
后端·python·面试
lbb 小魔仙20 分钟前
基于Python构建RAG(检索增强生成)系统:从原理到企业级实战
开发语言·python
SunnyDays101138 分钟前
Python 如何精准统计 Word 文档的页数、字数、行数
python·word文档字数统计
小陈的进阶之路1 小时前
Python系列课(2)——判断
java·前端·python
脉动数据行情2 小时前
Python 实现融通金行情数据对接(实时推送 + K 线 + 产品列表)
开发语言·python
wltx16882 小时前
谷歌SEO如何做插床优化?
大数据·人工智能·python
2301_781571422 小时前
JavaScript中Object-getOwnPropertySymbols获取方法
jvm·数据库·python
倒霉熊dd3 小时前
Python学习(第一部分 语法与数据结构/核心基础)
大数据·python·学习·pip
仅此,3 小时前
deep agent整合 DeepSeek 记录
python·langchain·agent·deep agent sdk
ftpeak3 小时前
AI开发之LangGraph教程6~自定义状态 (Custom State)
python·ai·langchain·langgraph