Android固件img文件的解包打包

To Unpack-Modify-Pach the system.img, I have followed the following procedure:

a) Unpacking

Run file system.img and make sure that system.img is Android Sparse Image.
Rename system.img to system.img.ext4. // Not required if you will use other name for raw image in below steps.

simg2img system.img.ext4 system.img

you will get a raw image file named system.img

mkdir system

create directory to mount system.img

sudo mount -t ext4 -o loop system.img system/

you will get all files of system.img in system folder

b) Modifying

ls -l system/init.rc

note permissions: 750

sudo chmod 777 system/init.rc

give write permissions

sudo echo "#MODIFICATION " >> system/init.rc

done some modification in init.rc

sudo chmod 750 init.rc

reset init.rc to the noted permissions

c) Calculate system sector size

tune2fs -l system.img | grep "Block size\|Block count"

you will get block size and count

echo $((1553064 * 4096))

multiply both results. I got 6361350144

d) Packing

sudo make_ext4fs -s -l 6361350144 -a system system_new.img sys/

you will get system_new.img “Android Sparse Image” that has all changes

Amlogic固件的解包修改和打包

需要两个工具, 一个是linux下的工具

https://github.com/natinusala/linux-amlogic-toolkit

另一个是windows下的解包和打包工具 Amlogic CustomizationTool

因为前者的打包存在bug, 所以只用于对system.img进行修改, 后者用于最外层的解包和打包工作.

# Mount system RW:
mount -o rw,remount /system
# Mount system RO:
mount -o ro,remount /system

  

/init.rc 内, 找到 service console 之后添加

service daemonsu /system/xbin/daemonsu --auto-daemon &
class main
oneshot

  

Android固件img文件的解包, 修改和打包的命令行操作的更多相关文章

  1. android studio 使用gradle 导出jar包,并打包assets目录

    警告:本文年久失修. 随着android studio的升级 ,gradle的升级,严格按照本文的代码去做可能不会成功,希望依然可以作为解决问题的思路. 最近项目在做一个sdk,供别的开发者使用,所以 ...

  2. [转]--android studio 使用gradle 导出jar包,并打包assets目录

    转自: http://www.cnblogs.com/wuya/p/android-studio-gradle-export-jar-assets.html   最近项目在做一个sdk,供别的开发者使 ...

  3. [原] Android自动打包之命令行打包

    Android自动打包流程详细图: 总结为以下几个步骤: 1. 生成R文件 2. Java代码编译成class文件 3. class文件生成dex文件 4. 打包资源 5. 生成apk 6. 创建密匙 ...

  4. Android SDK 环境的搭建 --图形界面模式和命令行模式

    Android 开发首先就是要搭建开发环境,没有用过Eclipse(ADT)开发过,直接用的Android Studio,其中最主要的就是 Android SDK的安装和搭建,所以这里只是总结下And ...

  5. apk解包——修改后缀为zip

    将apk修改后缀为zip后,可直接解包查看资源文件

  6. Android之zip文件加密解压及进度条的实现

    zip文件的解压能够使用java的zip库,可是没有实现对加密文件的解压功能,这里能够使用zip4j来实现.详细能够參看该文<Android下zip压缩文件加密解密的完美解决方式>.该文件 ...

  7. 【Mac + Android】之Android Studio 环境搭建,AVD模拟器运行(包括:命令行运行AVD,并且Genymotion模拟器插件配置运行)

    目录: 前提.Mac环境下手动配置Android SDK 一. Android Studio下载及配置 二.AVD模拟器配置运行 扩展:命令行运行AVD模拟器 三.在Android Studio 中配 ...

  8. git命令行操作详解

    目录 1.常用操作 1.1 新建代码库 1.2 配置 1.3 remote管理 1.4 添加和撤销操作 1.5 代码提交 1.6 分支操作 1.7 查看信息 1.8 pull操作 1.9 push操作 ...

  9. Android Stadio配置了gralde的本地路径,但是windos 命令行还是会下载gradle

    如下图: 已经在stadio 里面设置了gradle 的路径,但是在cmd 命令行里面不会去用这个路径. 解决方案:需要在环境变量里面设置一个gradle home GRADLE_USER_HOME ...

随机推荐

  1. GoLang 中用 MongoDB Watch 监听指定字段的变化

    需要 MongoDB 3.6 及以上, 需要 ReplicaSet 模式. 监听一个字段的变化: func watch(coll *mongo.Collection) { match := bson. ...

  2. 3 Dalvik基础知识

    Dalvik汇编基础知识: Dalvik指令:由位描述+指令格式标示 位描述: 1. 每16位空格隔开 2. 每个字母表示4位,每个字母按从高字节开始,排列到低字节.每四位之间可用 | 分开表示不同内 ...

  3. TensorFlow NMT的数据处理过程

    在tensorflow/nmt项目中,训练数据和推断数据的输入使用了新的Dataset API,应该是tensorflow 1.2之后引入的API,方便数据的操作.如果你还在使用老的Queue和Coo ...

  4. I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2

    遇到了这个问题,意思是你的 CPU 支持AVX AVX2 (可以加速CPU计算),但你安装的 TensorFlow 版本不支持 解决:1. 如果是初学者 或者 没有太大计算速度的需求,在开头加上这两行 ...

  5. Linux相关目录

    Linux 启动流程 Linux--基本目录 Linux--selinux Linux--网卡配置 Linux--系统运行级别 Linux--重要文件

  6. “GIS DICTIONARY A-Z” 查询页面开发(1)——bs4与词典数据处理

    第一天的工作:找到数据源,数据下载,数据处理. 数据源:"http://webhelp.esri.com/arcgisserver/9.3/java/geodatabases/definit ...

  7. python调用C语言接口

    python调用C语言接口 注:本文所有示例介绍基于linux平台 在底层开发中,一般是使用C或者C++,但是有时候为了开发效率或者在写测试脚本的时候,会经常使用到python,所以这就涉及到一个问题 ...

  8. jmeter中设置线程数与设置集合点的区别

    1.设置线程数: 表示10秒内启动50个线程, 运行结果如下:10秒内启动了50个线程 2.设置集合点: Number of Simulated Users to Group by:50,表示集合50 ...

  9. javax.persistence.PersistenceException: Unable to build entity manager factory

    javax.persistence.PersistenceException: Unable to build entity manager factory at org.hibernate.jpa. ...

  10. 51Nod1686 第K大区间 和 NOI2016 区间

    谈一下尺取法的经典题. 第K大区间 定义一个区间的值为其众数出现的次数. 现给出n个数,求将所有区间的值排序后,第K大的值为多少. 众数:区间里出现次数最多的数字,例如:1 1 2 2 2,区间[1 ...