关于TV android开发system.img,tvconfig.img等解包打包问题并出现停留在开机logo。

本文详细介绍固件升级包的制作流程,包括system.img的打包与转换过程,并提供了具体的命令行操作实例。

目录:\out\target\product\device;
在制作固件升级包的时候,会遇到打包system.img完了以后。开机停留在开机logo方面或者开不了机的情况,造成这个的原因有几个。一个是权限的设置,还有一个是代码沉余校验。
在打包的时候会用到的几种系统命令集。
第一步就是要找已经解压的system文件夹和tvconfig:
随后就需要打包。打包用到的工具有:make_ext4fs :打包文件 file_contexts:系统的一些权限
./make_ext4fs -S ./file_contexts -l 350M -s -a system systemm.img system
-S ./file_contexts:必须要加上这句。读取权限,不然打包出来的升级文件会只停留在开机logo页面。这个在我们编译后的文件 \out\target\product\philips_is\root 目录下。
-l 350M: 这是文件夹的大小,尽量和原来的大小差不多,,不然也会产生多余文件,导致升级文件停留在logo页面或者升级error。
-s -a system:这个的意思是使用系统的权限。这个也要加上。
Systemm.img :打包出来的文件名称,一般别直接叫system.img因为后期还要转化。因为直接打包错来的不是ext4f 文件,需要转换一下。这个文件命令在 \out\host\linux-x86\bin

 ./simg2img systemm.img system.img

执行了这个命令以后,我们打包的文件就会是我们需要的文件了。

Crc :这个是沉余代码的校验,,这个文件需要使用校验。

#!/bin/bash

echo -e "打包images成功"

./make_ext4fs -S ./file_contexts -l 380M -s -a system systemm.img system

echo -e "打包images成功"

./simg2img systemm.img system.img

file system.img

source ./releaseimage.sh

echo -e "转换img文件成功,输出到images目录"
cp ../image/system.* ../philips_is
cd ../philips_is/
source ./make_usb_upgrade.sh

pwd

-l 380M:这个是分区的大小。。这个要参考原来打包前的大小。设成差不多的值。
以上就是我打包的代码,,一条代码到底就生成了固件升级包。我的这是android tv的固件升级包。和手机端的有点差异不过原理是一样的。以上的步骤。

包含boot.exe huawei C8800 root工具 Android平台ROM的定制及精简教程.pdf signapk.jar 等等 2010.11.02.2更新 0. 添加crc校验,目前是关闭,只有在debug方式解开updata.app时才启用 (--unpack-updata UPDATA.APP debug) 1. 修复windows系统下系统目录符号\与linux下系统目录符号/不一致的情况,感谢cgw233@gmial.com提交bug 2010.11.02更新: 0. 修复unyaffs在windows下的文件打开模式bug,感谢cgw233@gmial.com提交bug 1. 添加注释 2. 代码兼容2.4, 2.5. 2.6, 2.7至3.0, 3.1 3. 增加对565文件的解析 以上内容请运行,看参数提示即可,基本改变不大。 unpack-yafffs, unpack-yaffs2, unpack-yaffs功能完全一致。 由于之前拼写错误,把yaffs文件系统弄成了yafffs,而这个版本实际是版本2,所以这几个都支持。 2010.10.27更新: 1. 添加解开及生成rle格式 2. 修订bootimg格式 工具主要语言为python,分两处版本,源文件及windows下可执行文件exe,内容及用法完全一致。 运行方法: bootimg.py 功能 参数 目前支持以下功能: --repack-ramdisk, 生成 ramdisk --unpack-ramdisk, 解开 ramdisk --repack-bootimg, 生成 bootimg (包括boot.img及recovery.img) --unpack-bootimg, 解开 bootimg --unpack-updata, 解开 updata --unpack-yafffs, 解开 yafffs --unpack-rle, 解开rle,生成raw格式及png图片(如果pil可用, exe里有pil) --repack-rle, 生成rle,可支持多种格式 下面一一说明功能中的参数。 --unpack-updata [文件] [文件]为空时,默认使用UPDATA.APP 解开后,会有四个文件,boot.img, recovery.img, system.img, userdata.img 这些都是刷机时可能需要的。 --unpack-bootimg [文件] [文件]为空时,默认使用boot.img 解开后,会有两个文件,kernel和ramdisk.gz 同时,注意输出,比如base, cmdline, name等等 --repack-bootimg [base] [cmdline] [base]为空时,使用0x200000 (C8600默认) [cmdline]为空时,使用mem=211 console=null androidboot.hardware=qcom (c8600适用) 生成bootimg时,会使用kernel和ramdisk.gz(如果存在ramdisk.cpio.gz,优先使用),生成boot.img 更新: --repack-bootimg [base] [cmdline] [page_size] [padding_header] [padding_kernel] [padding_ramdisk] 具体的参数请在注意unpack时的原始参数。 2010.10.27更新 --repack-bootimg [base] [cmdline] [page_size] [padding_size] 有关padding_size请参看unpack-bootimg时的结果,c8600默认为4096字节 --unpack-ramdisk [文件] [目录] [文件]为空时,使用ramdisk.gz [目录]为空时,使用initrd, (请保证这个目录不存在) 输出:cpiolist.txt, initrd目录下的文件 --repack-ramdisk [cpiolist] [cpiolist]为空时,读取cpiolist.txt 根据cpiolist.txt生成ramdisk.cpio.gz cpiolist.txt格式 1). 文件 file 目标系统路径 当前系统路径 目标系统权限 2). 目录 dir 目录系统路径 目录系统权限 3). 软链接 slink 目录系统路径 链接路径 目标系统权限 --unpack-yafffs [文件] [目录] [文件]为空时,使用userdata.img (呃,这个比system.img小) [目录]为空时,使用文件除.img外的其它内容,比如userdata.img时使用userdata 注:目录必须不存在 将把文件解开到目录下去 注:windows系统不支持软链接和硬链接,可能会报警告信息 --unpack-rle [rle] [raw] 2010.10.27版本新增 如果有pil模块,将生成png,目前仅支持320x480 --repack-rle [raw] [rle] 2010.10.27版本新增 如果有pil模块,raw可以是任何图片格式。 已经测试的有jpg, png等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值