/usr/bin/avos
From ArchosDocs
The file /usr/bin/avos provides the graphical interface of the Archos 5. It contains a lot of useful information on the Archos' security, for example, how the .aos firmware update files are verified and validated.
You can download your copy here. Load it in IDA, wait a couple of hours, and you're set. Happy reversing.
Progress
- We have covered most of the boot process (the main() function).
- We have covered the .aos validation process, see AOS_check_file().
- We have covered the .aos file format.
The Code, so far...
You will find only the most important functions in this list, otherwise it would grow very quickly.
- main() The main() function.
- app_start() The initialization routines.
- AC_MainLoop() Sets up the main loop.
- mainloop_enter() The main loop itself.
- do_housekeeping() Saves some settings to flash memory and to HDD. See also /mnt/data/System/System6.bin
- AOS_check_file() checks the validity of an .aos file
- AOS_decipher_SIGx_block() decrypt the md5 checksum from the file header
- AOS_compare_SIGx_checksum() check if the checksum of the file is correct.
- MPK_load_key() read a key from flash memory.
- AOS_update_from_file() installs an update from a .aos file
- AOS_parse_cipher() parses the CIPH block and set decryption callbacks.
- AOS_parse_unit() parses the UNIT block.
- AOS_parse_version() parses the VERS block.
- AOS_parse_duration() parses the TIME block.
- Sys_pk_build_product_key() generate the product key.
- FLASH_* functions:

