Изменения

Archos 101

6127 байтов добавлено, 22:58, 5 февраля 2012
м
Нет описания правки
[[Файл:Archos-101-internet-tablet lg.jpg|200px|right]] [http://market.yandex.ru/model.xml?hid=6427100&modelid=6531601 Archos 101] — «интернет-планшет» от компании Archos. Заказывал с [http://www.computeruniverse.de computeruniverse.de]. Знал бы о минусах — не купил. «Полный фарш» (и гораздо более полный, чем в Archos 101) есть уже почти у всех.
'''UPDATE 2011-04-01: Загрузчики Archos 101 (и вообще gen8(а подозреваю, что и gen9)) мною успешно взломаны. См [[#PWNED]].'''
== Плюсы ==
* 10.1" экран, 802.11n. Но это уже почти у всех есть.
* Процессор TI OMAP 3630. Хорошо тем, что TI, потому что они предоставляют спеки, в отличие от анального Qualcomm’а со своими Snapdragon’ами.
 
Со всем этим Archos, правда, опоздал где-то так на полгодика, потому что когда они таки выпустили эти планшеты, уже проснулись и другие производители, и у многих тоже появился USB-HOST (а экран был изначально лучше архоса — см. ниже хард-минусы).
== Минусы ==
* Нет ни 3G, ни GPS.
СофтВ общем-то хард-минусы всё и убивают, потому что с софт-минусами можно что-нибудь поделать кастомными прошивками. Однако, вот и софтовые минусы:
* Нет netfilter’а (а с ним ни tethering’а, ни openvpn несмотря на то, что есть модуль tun).
[[File:Pwned.png|200px|right]]
Итак, решил наконец вернуться из дебрей дизассемблирования к тому, ради чего я его затеял — к взлому загрузчиков Archos’а 101Archos gen8 и gen9 (отключению проверки цифровой подписи), и проверить, получится ли. Archos crack bootloader diy free download, как бы сказал SEOшник. По идее, это не так-то много и даёт — кастомные ядра можно и так устанавливать, это предусмотрено вторичным загрузчиком в виде «SDE». Но есть нюансы! Во-первых, эти ПИДРы из Archos’а утверждают, что при установке SDE (произошедшей хотя бы раз) обнуляют DRM-ключи устройства (что в общем-то насрать) и гарантию (тоже насрать, чуть меньше, но всё же) — типа, в устройство ставится какой-то флаг, по которому они всегда могут понять, что «ОНО УСТАНАВЛИВАЛОСЬ, ЮЗЕР НИХАРОШИЙ». Во-вторых, и что более важно — никакие эксперименты с SDE не дают возможности модификации загрузчиков и recovery (хер вам, а не ClockWorkMod). Невозможность модификации recovery всё-таки обижает, а модификация загрузчика дала бы возможность, например, объединить два mmc-девайса в один и нормально преодолеть идиотское ограничение в 512 Мб на систему — реально-то чип один, это он уже софтово (параметром модуля ядра) на два делится — 512 Мб mmcblk0 + всё остальное mmcblk1. Но на это в целом насрать, потому что, особенно исходя из «популярности» устройства, которой оно обязано говённому железу, скорее всего никто модов загрузчика и не сделает. Собственно, Archos-энтузиасты, по-моему, ограничиваются людьми типа scholbert’а (XDA), которым gen8 достался в состоянии кирпича (bricked) и нескольких странных людей вроде меня, купивших его честно, но не видящих ему применения. Ну, и наконец, моральный нюанс. Неприятно иметь лоченный, даже частично, девайс. Всё-таки жалко, что Linux не GPLv3, тогда бы и загрузчики были открыты, и секретные RSA-ключи, используемые для прошивки :(. Вешать тивоизаторов НА СУКУ!!! Вот. Так что было принято решение, не устанавливая SDE, отучить свой девайс быть тивоизированным.
По-лу-чи-ло-сь. Оба загрузчика (первичный и вторичный) успешно взломаны. Проверка цифровых подписей на моём девайсе теперь отключена.
</code-asm>
Понятное делоДля этих манипуляций, правда, для этого нужен '''root''', который на архосе gen8 успешно получается Archangel’ом, но только на прошивках старее 2.3.xx… Причём все прошивки после 2.1.08 не дают откатываться на более старые (но всегда можно откатиться куда угодно с помощью SDE). Так что root без потери гарантии (срать на эту гарантию…) всё-таки может быть некоторой проблемой, манипуляции лучше делать, оставаясь на 2.1.xx или 2.2.xx. Правда я хз, можно ли вообще найти gen8 с заводской прошивкой 2.3.xx или 2.4.xx, так что в целом, может, и всё равно плевать.
<span style="color: red; font-size: 18pt">'''Внимание!'''</span>
Если внезапно кто-нибудь будет повторять и по данным адресам обнаружит данные, отличные от 7F402DE9003091E5, ни в коем случае не меняйте — убьёте загрузчик, и девайс будет bricked, кирпичиком. Ну и вообще , в любом случае, все модификации загрузчика делайте оочень аккуратно и на свой страх и риск.
Его наверняка можно debrick’нуть, процессор в нём TI OMAP 3630, и с большой вероятностью выведен загрузочный UART, если нет — то, возможно, выведен test point (пин процессора SYS_BOOT5) и, соединив его с VCC, можно загрузиться по USB… Но это — бааальшой геморрой, так как сначала его (тестпоинт) <s>нужно ещё найти</s> уже всё [http://forum.xda-developers.com/showthread.php?t=1199450 нашёл scholbert], а потом ещё найти/написать загрузчик, который сможет восстановить систему…
Кстати, спасибо EiNSTEiN’у http://archos.g3nius.org/, идея взлома взята у него (он так же ломал Archos 5).
== 3G USB модемы ==
А в UrukDroid’е поддержка 3g модемов уже и так есть, кстати.
 
== Системные форматы ==
 
Это тоже я пишу, я, просто на английском.
 
Rawfs:
* 0x200 rawfs superblock
** magic number: 61 72 61 77 = «araw».
** …
** files/partitions:
*** 4 byte offset from beginning of disk, in bytes
*** 2 byte size, in blocks
* 0x4600 «init» offset from rawfs header, this 4 byte number is written 6 bytes before «init» string in the rawfs header * 0x200 bytes in block)
* 0x200 section header
 
The code of «avboot» secondary stage bootloader tells us it could also boot using a FAT (16?) partition instead of rawfs
 
Magic numbers of archos signature block:
* f0 89 e5 da — kernel+initramfs
* 5a 4d 66 58 («ZMfX») — secondary stage bootloader
* d5 84 c2 d3 — / filesystem (androidmerged.squashfs.secure)
 
Format of rawfs partitions with kernel/initramfs:
* 0x100 byte header with signature
** magic number: f0 89 e5 da
** 4 byte size of signature in bits (0x400 = 00 04 00 00 on «init» kernel, 0 = 00 00 00 00 on «custom» kernel).
** digital signature — 0x80 bytes = 0x400 bits. Zeroed on «custom» kernel.
** 00 00 00 00
** 4 byte full size of image (header+kernel+initramfs)
** 00 00 00 00 ''(also 00 01 00 00 in androidmerged.squashfs.secure)''
** 4 byte (kernel size + 0x100) = initramfs offset
** 4 byte initramfs.cpio.gz size
** zeroes up to 0x100
* zImage
* initramfs.cpio.gz