(已解决)FirePrime如何制作update.img

本帖最后由 feng3327 于 2016-7-8 16:05 编辑

看官方的wiki,执行了mkupdate.bat,结果出现:

D:\lw\FirePrime\AndroidTool_Release_v2.35\rockdev>Afptool -pack .\backupimage backupimage\backup.img
Android Firmware Package Tool v1.62
------ PACKAGE ------
Add file: .\backupimage\package-file
Add file: .\backupimage\package-file done,offset=0x800,size=0x296,userspace=0x1
Add file: .\backupimage\rk3126MiniLoaderAll(L)_V2.19.bin
Add file: .\backupimage\rk3126MiniLoaderAll(L)_V2.19.bin done,offset=0x1000,size=0x1c94e,userspace=0x3a
Add file: .\backupimage\rk312x.parameter.txt
Add file: .\backupimage\rk312x.parameter.txt.tmp done,offset=0x1e000,size=0x2e1,userspace=0x1
Add file: .\backupimage\Image/uboot.img
AddFile:open file failed: .\backupimage\Image/uboot.img
------ FAILED ------

D:\lw\FirePrime\AndroidTool_Release_v2.35\rockdev>Afptool -pack ./ Image\update.img
Android Firmware Package Tool v1.62
------ PACKAGE ------
Add file: .\package-file
Add file: .\package-file done,offset=0x800,size=0x295,userspace=0x1
Add file: .\rk3126MiniLoaderAll(L)_V2.20.bin
Add file: .\rk3126MiniLoaderAll(L)_V2.20.bin done,offset=0x1000,size=0x1b94e,userspace=0x38
Add file: .\rk312x.parameter.txt
Add file: .\rk312x.parameter.txt.tmp done,offset=0x1d000,size=0x33f,userspace=0x1
Add file: .\Image/uboot.img
AddFile:open file failed: .\Image/uboot.img
------ FAILED ------

D:\lw\FirePrime\AndroidTool_Release_v2.35\rockdev>RKImageMaker.exe -RK312A rk3128MiniLoaderAll(L)_V2.20.bin  Image\update.img update.img -os_type:androidos
********RKImageMaker ver 1.62 ********
Generating new image, please wait...
Error:Get image version failed!

D:\lw\FirePrime\AndroidTool_Release_v2.35\rockdev>rem update.img is new format, Image\update.img is old format, so delete older format

D:\lw\FirePrime\AndroidTool_Release_v2.35\rockdev>del  Image\update.img

D:\lw\FirePrime\AndroidTool_Release_v2.35\rockdev>pause

之前里面是RKImageMaker.exe -RK312A rk3126MiniLoaderAll(L)_V2.20.bin,已修改成 rk3128MiniLoaderAll(L)_V2.20.bin

loader的版本也不一致,应该是firefly没有集成update的脚本吧

你可以检查一下目录中的package-file文件和mkupdate.bat中的配置是否正确。

brian0218 发表于 2016-7-5 17:28
你可以检查一下目录中的package-file文件和mkupdate.bat中的配置是否正确。

我查看了linux的脚本,
./rkImageMaker -RK312A RK3128MiniLoaderAll_V2.25.bin Image/update.img update.img -os_type:androidos || pause
这个V2.25和官方给的固件的loader一致,但是在源码中,找不到该bin

你可以把package-file文件给我看看吗?

brian0218 发表于 2016-7-5 18:39
你可以把package-file文件给我看看吗?

我在源码里面找的,https://bitbucket.org/T-Firefly/firenow-lollipop/src/8a8f05d219e9ba4cbbe77a2d056c627103727d74/RKTools/windows/AndroidTool/?at=fireprime

你的本地sdk目录没有吗?

brian0218 发表于 2016-7-5 18:55
你的本地sdk目录没有吗?

# NAME		Relative path
#
#HWDEF		HWDEF
package-file	package-file
bootloader	rk3126MiniLoaderAll(L)_V2.20.bin
parameter	rk312x.parameter.txt
uboot		Image/uboot.img
misc		Image/misc.img
resource        Image/resource.img
kernel		Image/kernel.img
boot            Image/boot.img
recovery	Image/recovery.img
system		Image/system.img
# 要写入backup分区的文件就是自身(update.img)
# SELF 是关键字,表示升级文件(update.img)自身
# 在生成升级文件时,不加入SELF文件的内容,但在头部信息中有记录
# 在解包升级文件时,不解包SELF文件的内容。
# RESERVED不打包backup
backup		backupimage/backup.img
update-script	update-script
recover-script	recover-script

我已将rk3126MiniLoaderAll(L)_V2.20.bin替换成rk3128MiniLoaderAll(L)_V2.20.bin,打包依旧报错

明确的告诉我,你要使用的loader是啥版本

brian0218 发表于 2016-7-5 19:27
明确的告诉我,你要使用的loader是啥版本

RK3128MiniLoaderAll_V2.25.bin 官方固件版本,如果你能编译成功,麻烦告诉下,实在windows下还是linux

feng3327 发表于 2016-7-5 19:38
RK3128MiniLoaderAll_V2.25.bin 官方固件版本,如果你能编译成功,麻烦告诉下,实在windows下还是linux

或者你把你编译成功的文件夹发给我都行,谢谢了

用这个试试看。
feng3327.zip (951 Bytes)

brian0218 发表于 2016-7-5 19:51
用这个试试看。

这个文件没有RK3128MiniLoaderAll_V2.25.bin

这个只是两个 windows脚本

brian0218 发表于 2016-7-5 19:59
这个只是两个 windows脚本

我知道,但是打包的依赖RK3128MiniLoaderAll_V2.25.bin这个文件才能打包成功吧

你那裡没有吗?

如果有的话,直接用就可以了.

本帖最后由 linjc 于 2016-7-6 09:58 编辑

编译完用“./FFTools/rarimg.sh firmware_name”打包成rar格式的固件,修改AndroidTools如下:
rockdev/package-file(注意:uboot路径):

# NAME		Relative path
#
#HWDEF		HWDEF
package-file	package-file
bootloader	RK3128MiniLoaderAll_V2.25.bin
parameter	rk312x.parameter.txt
uboot		uboot.img
misc		Image/misc.img
resource        Image/resource.img
kernel		Image/kernel.img
boot            Image/boot.img
recovery	Image/recovery.img
system		Image/system.img
# 要写入backup分区的文件就是自身(update.img)
# SELF 是关键字,表示升级文件(update.img)自身
# 在生成升级文件时,不加入SELF文件的内容,但在头部信息中有记录
# 在解包升级文件时,不解包SELF文件的内容。
# RESERVED不打包backup
backup		backupimage/backup.img
update-script	update-script
recover-script	recover-script

rockdev/mkupdate.bat(注意第一行的路径):

Afptool -pack .\ backupimage\backup.img
Afptool -pack ./ Image\update.img

RKImageMaker.exe -RK312A RK3128MiniLoaderAll_V2.25.bin  Image\update.img update.img -os_type:androidos

rem update.img is new format, Image\update.img is old format, so delete older format
del  Image\update.img

pause

再运行mkupdate.bat应该可以生成update.img

linjc 发表于 2016-7-6 09:55
编译完用“./FFTools/rarimg.sh firmware_name”打包成rar格式的固件,修改AndroidTools如下:
rockdev/pa …

非常感谢,已成功生成,建议把Bitbucket 里面的RKTools 里面的windows删除,把这个教程,可以写入到wiki里面,之后的人少走些弯路

GOOD