Proprietary PhoenixSuit CLI for Linux.
- Lua 65.5%
- C 33.7%
- Makefile 0.8%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| config | ||
| drivers | ||
| common_fun.lua | ||
| imgdec_fun.lua | ||
| ini_fun.lua | ||
| LangPlg.dll | ||
| liblua.so | ||
| LiveProc.Plg | ||
| luaBase.dll | ||
| luadec.dll | ||
| luaeFex.dll | ||
| phoenixsuit | ||
| plgvector.dll | ||
| README.md | ||
| regbasefun.lua | ||
| regdecode.lua | ||
| regdemo.lua | ||
PhoenixSuit CLI for Linux
This is a copy of PhoenixSuit tool downloaded from Allwinner developer page, it has no QT interface as old LiveSuit v3.06 does and only supports x86_64.
Usages
sudo ./phoenixsuit {path to firmware image *.img}
Known issues
- Newer firmware images format such as firmware of T95 Super with Android 10+ and super partition are unable to flash as it fail and can't handle when trying to verify
superpartition, idk why. PhoenixSuit on Windows are still able to handle this format somehow. (Android 9 or older firmware format should be fine!) - Do not run phoenixsuit without arguments, as it will return with
Segmentation fault (core dumped)error. - Run without root permission will lead to Get Device stage error.
Kernel module installation to make sure device can be recognized
- If you using Debian or Fedora based distro, simply install *.deb or *.rpm on drivers folder. If you are using Arch/EndeavourOS or other distros, use following command to compile and install manually kernel module :
git clone https://gitlab.com/cuynu/phoenixsuit-linux.git
cd phoenixsuit-linux/drivers/awusb
sudo make
sudo make install
sudo depmod -a
sudo modprobe awusb
cd ..
Example of good flash logs :
sudo ./phoenixsuit '/home/cuynu/Downloads/H3_7.1_rom ATV _Vinabox.img'
library file path: /home/cuynu/phoenixsuit-linux/plgvector.dll
library file path: /home/cuynu/phoenixsuit-linux/LiveProc.Plg
library file path: /home/cuynu/phoenixsuit-linux/plgvector.dll
library file path: /home/cuynu/phoenixsuit-linux/luaeFex.dll
Register./luaBase.dll l_RegAllFun Sucess!
Register./luaeFex.dll l_RegAllFun Sucess!
Register./luadec.dll l_RegAllFun Sucess!
IMAGEWTY
ItemTableSize = 1048576
Closing image now!
Clos image OK!
Dev Plugin The Device Path is: /dev/aw_efex0
Begin Burn the image!
0%Register./luaBase.dll l_RegAllFun Sucess!
Register./luaeFex.dll l_RegAllFun Sucess!
Register./luadec.dll l_RegAllFun Sucess!
IMAGEWTY
ItemTableSize = 1048576
Closing image now!
Clos image OK!
--------------Init Called------------------
workDir /home/cuynu/phoenixsuit-linux/phoenixsuit
ImgLenHigh 0
ImgLenLow 996468736
Mode 8
hWnd 0
imgFilePath /home/cuynu/Downloads/H3_7.1_rom ATV _Vinabox.img
[TL_MSG]:Mode = 8, ImgLenHigh=0, ImgLenLow = 3b64e800, imgFilePath = /home/cuynu/Downloads/H3_7.1_rom ATV _Vinabox.img
IMAGEWTY
ItemTableSize = 1048576
[TL_MSG]:Tools Open Img
---fun end---
--------------entry-fel2fes Called-----------
felDevName /dev/aw_efex0
[TL_MSG]:Hi, I'm fel, dev=/dev/aw_efex0
[TL_MSG]:To down and Run fes1-1
[TL_MSG]:fes1 down addr = 0x8000, retAddr =0x7210
[TL_MSG]:To clear fes aide log
[TL_FEX]:fel UP addr=0x7210, len=136
[TL_MSG]:SYS_PARA_LOG read = 0x4d415244
[TL_MSG]:dram paras[0]: 0x240
[TL_MSG]:dram paras[1]: 0x3
[TL_MSG]:dram paras[2]: 0x3b3bfb
[TL_MSG]:dram paras[3]: 0x1
[TL_MSG]:dram paras[4]: 0x11040800
[TL_MSG]:dram paras[5]: 0x1
[TL_MSG]:dram paras[6]: 0x1c70
[TL_MSG]:dram paras[7]: 0x40
[TL_MSG]:dram paras[8]: 0x18
[TL_MSG]:dram paras[9]: 0x0
[TL_MSG]:dram paras[10]: 0x47a150
[TL_MSG]:dram paras[11]: 0x1c2414b
[TL_MSG]:dram paras[12]: 0x65046
[TL_MSG]:dram paras[13]: 0x0
[TL_MSG]:dram paras[14]: 0x0
[TL_MSG]:dram paras[15]: 0x2108a000
[TL_MSG]:dram paras[16]: 0x64
[TL_MSG]:dram paras[17]: 0x13890240
[TL_MSG]:dram paras[18]: 0x0
[TL_MSG]:dram paras[19]: 0x0
[TL_MSG]:dram paras[20]: 0x0
[TL_MSG]:dram paras[21]: 0x6aaa0000
[TL_MSG]:dram paras[22]: 0x7979
[TL_MSG]:dram paras[23]: 0x1800801
[TL_MSG]:dram paras[24]: 0x0
[TL_MSG]:dram paras[25]: 0x0
[TL_MSG]:dram paras[26]: 0x0
[TL_MSG]:dram paras[27]: 0x0
[TL_MSG]:dram paras[28]: 0x0
[TL_MSG]:dram paras[29]: 0x0
[TL_MSG]:dram paras[30]: 0x0
[TL_MSG]:dram paras[31]: 0x0
[TL_MSG]:To down and Run uboot
[TL_MSG]:u-boot down addr = 0x4a000000
[TL_MSG]:workmode = 0x10
[TL_MSG]:dtb down addr = 0x4a200000
[TL_MSG]:sysconfig down addr = 0x4a300000
---fun end---
Fel Thread Finished!
Dev Plugout The Device Path is: /dev/aw_efex0
Dev Plugout The Device Path is: /dev/aw_efex0
Dev Plugin The Device Path is: /dev/aw_efex0
--------------entry fes_thread Called---------
portId 0
fesDevName /dev/aw_efex0
hubId 0
DeviceId 1
[TL_MSG]:enter FES--/dev/aw_efex0
[TL_MSG]:Verify: media crc = 0
3%[TL_MSG]:save item to mem :(12345678,1234567890___MBR) realLen(65536)
l_calc_crc32, pBuffer = 0x74afc80130a4, nLen = 16380, crc32 = 715738120[TL_MSG]:name = bootloader, keydata = 0
[TL_MSG]:name = env, keydata = 0
[TL_MSG]:name = boot, keydata = 0
[TL_MSG]:name = system, keydata = 0
[TL_MSG]:name = verity_block, keydata = 0
[TL_MSG]:name = misc, keydata = 0
[TL_MSG]:name = recovery, keydata = 0
[TL_MSG]:name = private, keydata = 8000
[TL_MSG]:name = alog, keydata = 0
[TL_MSG]:name = Reserve0, keydata = 0
[TL_MSG]:name = Reserve1, keydata = 0
[TL_MSG]:name = Reserve2, keydata = 0
[TL_MSG]:name = cache, keydata = 0
[TL_MSG]:name = UDISK, keydata = 0
[TL_MSG]:name = , keydata = 0
[TL_MSG]:Verify: media crc = 0
[TL_MSG]:down mbr success!!!
4%[TL_MSG]:storge type is 2 (0:nand 1-2:card 3:spinor)
[TL_MSG]:dl file :save item to mem :(12345678,1234567890DLINFO) realLen(16384)
l_calc_crc32, pBuffer = 0x74afc861c174, nLen = 16380, crc32 = 766562264[TL_MSG]:------------dlmap dump--------------
[TL_MSG]:crc32 = 0x2db0cfd8
[TL_MSG]:version = 0x200
[TL_MSG]:magic = softw411
[TL_MSG]:part_cnt = 7
[TL_MSG]:flash size is : 30539776 Sectors
[TL_MSG]:name = bootloader addrhi=0x0 addrlo = 0x8000 lenhi = 0x0 lenlo = 0x8000 file = BOOTLOADER_FEX00, en=0,vf=1
18%[TL_MSG]:need verify:1,VBOOTLOADER_FEX0
[TL_FEX]:8000, 7c1c00
[TL_MSG]:Verify:start = 8000 ,size = 7c1c00 ,pc_crc = f693ac56, media crc = f693ac56
[TL_MSG]:name = env addrhi=0x0 addrlo = 0x10000 lenhi = 0x0 lenlo = 0x8000 file = ENV_FEX000000000, en=0,vf=1
32%[TL_MSG]:need verify:1,VENV_FEX00000000
[TL_FEX]:10000, 20000
[TL_MSG]:Verify:start = 10000 ,size = 20000 ,pc_crc = e9d64f18, media crc = e9d64f18
[TL_MSG]:name = boot addrhi=0x0 addrlo = 0x18000 lenhi = 0x0 lenlo = 0x10000 file = BOOT_FEX00000000, en=0,vf=1
45%[TL_MSG]:need verify:1,VBOOT_FEX0000000
[TL_FEX]:18000, 128b800
[TL_MSG]:Verify:start = 18000 ,size = 128b800 ,pc_crc = be7fd5f7, media crc = be7fd5f7
[TL_MSG]:name = system addrhi=0x0 addrlo = 0x28000 lenhi = 0x0 lenlo = 0x300000 file = SYSTEM_FEX000000, en=0,vf=1
[TL_MSG]:find a sparse format part,SYSTEM_FEX000000
[TL_MSG]:item size :898 M
[TL_MSG]:magic = ed26ff3a
[TL_MSG]:blk_size = 1000
[TL_MSG]:total_chunk = efa
[TL_MSG]:tlBufImg size = 600000
Fes Device Plugin before Timeout!
Kill Timer!
57%[TL_MSG]:handled chunk = efa total_chunk = efa
[TL_MSG]:name = verity_block addrhi=0x0 addrlo = 0x328000 lenhi = 0x0 lenlo = 0x8000 file = VERITY_BLOCK_FEX, en=0,vf=1
70%[TL_MSG]:need verify:1,VVERITY_BLOCK_FE
[TL_FEX]:328000, 110b3c
[TL_MSG]:Verify:start = 328000 ,size = 110b3c ,pc_crc = 79579903, media crc = 79579903
[TL_MSG]:name = recovery addrhi=0x0 addrlo = 0x338000 lenhi = 0x0 lenlo = 0x10000 file = RECOVERY_FEX0000, en=0,vf=1
84%[TL_MSG]:need verify:1,VRECOVERY_FEX000
[TL_FEX]:338000, 14d7800
[TL_MSG]:Verify:start = 338000 ,size = 14d7800 ,pc_crc = d42a18e8, media crc = d42a18e8
[TL_MSG]:name = UDISK addrhi=0x0 addrlo = 0x510000 lenhi = 0x0 lenlo = 0x0 file = DISKFS_FEX000000, en=0,vf=0
[TL_MSG]:work mode update ,udisk part ignore !!!!
96%[TL_MSG]:storge type is 2 (0:nand 1-2:card 3:spinor)
[TL_MSG]:bootpackage_mode : 4
[TL_MSG]:save item to mem :(12345678,BOOTPKG-00000000) realLen(1933312)
[TL_MSG]:Verify: media crc = 0
[TL_MSG]:down uboot success!!!
97%[TL_MSG]:storge type is 2 (0:nand 1-2:card 3:spinor)
[TL_MSG]:bootpackage_mode : 4
[TL_MSG]:save item to mem :(12345678,1234567890BOOT_0) realLen(32768)
[TL_MSG]:Verify: media crc = 0
[TL_MSG]:down boot0 success!!!
100%
Burn Finish;
[TL_MSG]:---fun end-----
---------------Exit Called-----------------
Closing image now!
Clos image OK!
[TL_MSG]:Tools Close Img ...
---fun end---
L302, Finished to call Tools.entry_fes_thread.
Dev Plugout The Device Path is: /dev/aw_efex0
Dev Plugout The Device Path is: /dev/aw_efex0
---------------Exit Called-----------------
---fun end---