制作Android分区镜像

embedded/2024/10/18 18:21:06/

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


http://www.ppmy.cn/embedded/26759.html

相关文章

思考!思考!jmeter线程数≠用户并发数

最近又在搞性能测试了,相较于之前的写脚本出数据就完事,这次深入的思考了一下测试出来的指标,到底有什么意义??? 绞尽脑汁思考了好几天,终于有了点思路,写出来与大家分享&#xff0…

【yolov8】yolov8剪枝训练流程

yolov8剪枝训练流程 流程: 约束剪枝微调 一、正常训练 yolo train model./weights/yolov8s.pt datayolo_bvn.yaml epochs100 ampFalse projectprun nametrain二、约束训练 2.1 修改YOLOv8代码: ultralytics/yolo/engine/trainer.py 添加内容&#…

【prometheus】监控MySQL并实现可视化

目录 一、概述 1.1下载解压mysqld_exporter 1.2创建MySQL授权用户 1.3配置my.cnf 1.4启动mysqld_exporter 1.5prometheus配置修改 二、Grafana展示 【Prometheus】概念和工作原理介绍_prometheus工作原理 【Prometheus】k8s集群部署node-exporter 【prometheus】k8s集…

RTSP,RTP,RTCP

机器学习 Machine Learning(ML) 深度学习(DL,Deep Learning) CV计算机视觉(computer vision) FFMPEG,MPEG2-TS,H.264,H.265,AAC rstp,rtp,rtmp,webrtc onvif,gb28181 最详细的音…

RuoYi-Vue-Plus (SPEL 表达式)

RuoYi-Vue-Plus 中SPEL使用 DataScopeType 枚举类中: /*** 部门数据权限*/DEPT("3", " #{#deptName} #{#user.deptId} ", " 1 0 "), PlusDataPermissionHandler 拦截器中定义了解析器: buildDataFilter 方法中根据注解的…

书生·浦语 大模型(学习笔记-9)大模型微调的相关概念 预训练 与 微调 全量微调FFT 与 PEFT的区别

目录 一、什么是大模型微调 二、指令微调 三、微调的目的 三、微调的方式 四、微调的步骤 五、微调数据准备 六、微调的数据质量 一、什么是大模型微调 预训练和微调的区别,这个很关键 二、指令微调 这个地方主要是微调的角度不同,简单理解&#…

知识产权 | 守护科技创新之光,共筑知识产权长城

2024年4月26日,迎来了一年一度的世界知识产权日,今年的主题是:“立足创新创造,构建共同未来。” 易我科技是一家专注于数据安全产品研发、生产、销售、服务一体化的高新技术软件企业。易我科技自成立以来,始终秉持尊重…

elment-table实现行滚动效果

通过获取dom &#xff0c;来控制表格滚动 <template><div class"scroll_table"><div style"display: inline-block; width: 100%"><el-table:data"tableData"ref"table"borderheight"100%"highlight-c…