[HOWTO] Unpack and repack stock firmware, works also for gen8
Hello All,
Here is a log of what I did to unpack and repack 3.2.78 firmware if any cooker is interested. The interesting part that differs in gen8 and gen9 compared to previous generation is the way you extract kernel and initrd.
For the record, Archos changed again initrd compression in this one, this is now lzo, not lzma anymore. Gen8 extract is the same except that they still use .gz instead of lzma/lzo.
I also attached the tools (linux) I use, aos-unpack has gen8 and gen9 keys, aos-kernel-unpack is a tool I wrote to split zImage and initrd.
Log is a bit rough, but all should be there:
Code:
aos-unpack firmware_archos_it4.aos
cd firmware_archos_it4/raw
dd if=9_MMCF of=init_kernel bs=264 skip=1
aos-kernel-unpack init_kernel
mv unpacked-cpio.gz init-cpio.cpio.lzo
mv unpacked-header init-header
mv unpacked-kernel init-zImage
rm unpack-unknown
dd if=10_MMCF of=recovery_kernel bs=264 skip=1
aos-kernel-unpack recovery_kernel
mv unpacked-cpio.gz recovery-cpio.cpio.lzo
mv unpacked-header recovery-header
mv unpacked-kernel recovery-zImage
rm unpack-unknown
mkdir init_cpio
cd init_cpio
cat ../init-cpio.cpio.lzo | lzop -d | sudo cpio -i --make-directories
cd ..
mkdir recovery_cpio
cd recovery_cpio
cat ../recovery-cpio.cpio.lzo | lzop -d | sudo cpio -i --make-directories
sudo emacs init (comment secure part and change squashfs location:
#if [ $SQUASHFS_CHECK -eq 1 ] ; then
# SQUASHFS_FULL_PATH=`get_mount_info p system`/$SECURE_SQUASHFS_FILENAME
# $CRAMFSCHECKER $SQUASHFS_FULL_PATH
# if [ $? -ne 0 ] ; then
# $FLASH_PARTITION_ERASE init
# log_and_reboot $FS_CHECK_ERROR "Secured fs check failed"
# fi
# $LOSETUP -o 256 `get_mount_info d rootfs` $SQUASHFS_FULL_PATH || log_and_die "Mounting system partition failed"
#else
mount_p data
$LOSETUP `get_mount_info d rootfs` /data/media/android_3.2.78.squashfs || log_and_die "Mounting system partition failed"
#fi
)
sudo su
rm init~
find . | cpio -o -H newc | lzop > ../new_initrd.lzo
cd ../../root/data/
dd if=androidmerged.squashfs.secure of=androidmerged.squashfs bs=256 skip=1
unsquashfs androidmerged.squashfs
cd squashfs-root
cp ../../../../3.2.69/root/data/squashfs-root/system/bin/su system/bin
chmod 6755 system/bin/su
cp ../../../../3.2.69/root/data/squashfs-root/system/app/Superuser.apk system/app
emacs default.prop
-> ro.secure=0
-> persist.service.adb.enable=1
emacs system/build.prop
-> ro.board.has_vibrator=yes
tar -cvzf ../rooted_stock_3.2.78.tgz *
cd ..
mksquashfs squashfs-root android_3.2.78.squashfs
Let me know if you need details or explanations. I didn't release 3.2.78 yet, my g9 battery is dead (or is it the whole tablet ? Crossing finger ) and I can't test right now. Hopefully it will go back to life and I will be able to test soon.
Thanks @letama for your linux tools .
I repacked firmware.squashfs.secure but now I don't know which are the correct zImage and initramfs.cpio.gz ( into .../raw -directory ) for flash into Recovery. ( I used your tools for unpack-repack - 3.2.78 firmware) .
---------- Post added at 08:00 PM ---------- Previous post was at 07:50 PM ----------
Following your tutorial for version 3.2.69 I managed to root my device , but I returned to the official version 3.2.78 without root, because was not stable and had no root privileges for all apk instaled ( root_explorer , setcpu and ather like that without root privileage ) - for this I gave up...
Thanks for this, might come in handy, might start cooking.... Never done it before. Does anyone know if anyone has started getting ClockworkMod running on this so we can get some CyanogenMod 9 love on this?
Thanks @letama for your linux tools .
I repacked firmware.squashfs.secure but now I don't know which are the correct zImage and initramfs.cpio.gz ( into .../raw -directory ) for flash into Recovery. ( I used your tools for unpack-repack - 3.2.78 firmware) .
Kernel unpack is in the list of commands there, and you also have to modify the initrd...
Quote:
Originally Posted by surdu_petru
Following your tutorial for version 3.2.69 I managed to root my device , but I returned to the official version 3.2.78 without root, because was not stable and had no root privileges for all apk instaled ( root_explorer , setcpu and ather like that without root privileage ) - for this I gave up...
3.2.78 rooted is coming soon, I'm uploading it currently, it should be ready in few minutes.
After reading about Dan Rosenberg’s bootloader exploit for the Samsung Galaxy S 4,I … more
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?