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

相关推荐
麦麦大数据41 分钟前
F036 vue+flask中医热性药知识图谱可视化系统vue+flask+echarts+mysql
vue.js·python·mysql·flask·可视化·中医中药
移远通信1 小时前
MQTT协议:物联网时代的通信革命
python·物联网·网络协议
Amo Xiang1 小时前
JavaScript逆向与爬虫实战——基础篇(css反爬之动态字体实现原理及绕过)
爬虫·python·js逆向·动态字体
编程让世界美好1 小时前
选手评分问题(python)
python
java1234_小锋2 小时前
PyTorch2 Python深度学习 - PyTorch2安装与环境配置
开发语言·python·深度学习·pytorch2
CClaris2 小时前
深度学习——反向传播的本质
人工智能·python·深度学习
伊玛目的门徒2 小时前
Jupyter Notebook 配置使用虚拟环境中(virtualenv) 内核
python·jupyter·virtualenv
Geoking.3 小时前
PyTorch torch.ones()张量创建详解
人工智能·pytorch·python
conkl3 小时前
在 CentOS 系统上实现定时执行 Python 邮件发送任务完整指南
linux·运维·开发语言·python·centos·mail·邮箱
人工智能教学实践3 小时前
TCP 与 HTTP 协议深度解析:从基础原理到实践应用
python