# 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. # Notice I don't know where is it's source code, since it's downloaded from Allwinner developer page. Don't PM/DM me to ask for that. # Usages - Clone the repository with git clone first * GitLab repository ``` git clone https://gitlab.com/cuynu/phoenixsuit-linux.git cd phoenixsuit-linux ``` * Disroot repository ``` git clone https://git.disroot.org/cuynu/phoenixsuit-linux.git cd phoenixsuit-linux ``` * Selfhost repository ``` git clone http://cuynutt.ddns.net/cuynu/phoenixsuit-linux.git cd phoenixsuit-linux ``` - Run PhoenixSuit CLI In order for this to works, you need to install `awusb` driver kernel module first. Scroll down for instructions. ``` 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 `super` partition, idk why. PhoenixSuit on Windows are still able to handle this format somehow. (Android 9 or older firmware format without `super` partition should be fine!) - If you run PhoenixSuit without arguments, it will return with `Segmentation fault (core dumped)` error. - Run without root permission will return with `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 kernel driver module manually or install `sunxi-awusb-dkms` from AUR (don't forget to install `dkms` and also header for your kernel first) : - GitLab repository ``` 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 .. ``` - Disroot repository ``` git clone https://git.disroot.org/cuynu/phoenixsuit-linux.git cd phoenixsuit-linux/drivers/awusb sudo make sudo make install sudo depmod -a sudo modprobe awusb cd .. ``` - Selfhost repository ``` git clone http://cuynutt.ddns.net/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--- ```