Идея (возможно безумная) реверс инженеринг прошивок

Прошивки и их моды\ Кухни\ Игры и приложения\ Различные настройки\ Различные вопросы по ОС Android и WM и т.п.

Модераторы: Lunat, pvsurkov, AlexG1, KSAT

Идея (возможно безумная) реверс инженеринг прошивок

Сообщение Ответ:#1 » sm2pda » 23 сен 2015, 11:25

Идея (возможно безумная) реверс инженеринг прошивок, требуются отзывы товарищей )

Захотелось мне CyanogenMod на мой THL W3+, дело за малым написать конфиг для сборки )
Но возник вопрос какие подключить блобы?
Тыкаться наугад как это предлагают в некоторых инструкциях очень не хотелось, 21 век все таки, искусственный интеллект уже должен быть уничтожить весь мир )

Реверс инженеринг!!!
Задача: Понять что внёс производитель, а что было из оригинально AOSP.
1) Взять стоковую стоковую прошивку (с возможным минимумом изменений внесенных из вне :) ) (распаковать system).
2) Взять соответствующую п1 версию андройда AOSP.
3) Подобрать параметры компиляции для бинарников, для джава машины (если они бывают различными и с разными параметрами компиляции в байт код)
3.1) Для этого выбрать по нескольку небольших файлов(которые скорей всего не менялись производителем) скомпилить их и сравнить с фалами из п1
процесс можно автоматизировать скриптом перебирающим параметры до совпадения хотя бы на одном из фалов
(несколько файлов чтобы уменьшить вероятность ошибки в выборе не изменненого)
4) С полученными параметрами собрать AOSP. взять из него system
5) Сделать сравнение п4 с п1 (алгоритм простой сначала сравнение по размеру, далее определение типа файла и diff)
5.1) Одинаковые файлы сразу удалять и из п1, и из п4
5.2) Для различающихся plain-text делать diff и резултат кидать в п1 (по diff сразу будет видно что добавил производитель в конфиги)
5.3) Для различающихся скомпиленных ява файлов можно делать декомпиляцию и дальше делать diff для них (но это может занять много времени), можно делать выборочно для наиболее интересных

ИТОГ Если что из явы и plain-text осталось в п4 это то что производитель не включил в свою прошивку. Ява и plain-text оставшиеся в п1 это наоборот то что производитель добавил от себя. В diff записаны сделанные производителем изменения относительно AOSP. В п1 бинарники (исходники которых на Си) возможно останутся все, надо думать что с ними делать, возможно равные по размеру не менялись производителем (тут мне не хватает знаний, смогу думать уже только после экспериментов)

Если удастся отделить бинарники. То подготовить конфигурацию для сборки CM не представляет труда
.


PS жду комментов от разбирающихся товарищей )

1) может я изобретаю велосипед и задача решатся или решена проще, так-то...
2) вся идея "Бред", потому что...
3) точно не получится то-то и то-то, потому что...
4) а вот это лучше или быстрее сделать так-то...
5) компилятор такой-то с такими параметрами...
6) остальные ваши идеи и мнения не вошедшие в первые 5 пунктов

PPS часть идеи связанная с plain-text и всякими «картинками» точно сработает

PPPS таким образом можно сравнивать любые две близкие прошивки например LeWa со стоком или MIUI, чтобы понять что меняется, что добавляется, или для секюрити целей, какие изменения вносит зловред и т.д.

PPPPS поставил на закачку AOSP android-4.0.4_r1.1 )

PPPPPS результаты исследования буду выкладывать ниже (а в этом посте ставить ссылки)

Добавлено спустя 2 минуты 46 секунд:
 Результаты:


 Идеи


Добавлено спустя 7 часов 33 минуты 12 секунд:
Третий вопрос: Где взять "стоковую стоковую" последнюю прошивку на мой телефон )
в источниках на форуме http://forum.china-iphone.ru/viewtopic.php?p=858128#p858128 http://forum.china-iphone.ru/viewtopic.php?p=936444#p936444
а также мой в моем бэкапе (сделанном в первые дни после покупки) system.img отличается(все остальное одинаково, data и cache в сравнение не участвовали, первые две прошивки можно сравнить легко, достаточно открыть в архиваторе и посмотреть контрольные суммы). Здесь может помочь задуманный инструмент ему ведь пофигу какие прошивки сравнивать. Не обязательно только что-то с AOSP, можно будет понять какая из трех более стоковая )

Вот и дальнейший путь продвижения нарисовался сравнить три «стоковые» прошивки, тут предположительно даже будет достаточно контрольных сум файлов, после распаковки разделов.

Идеи:
3) Возможно подключать для анализа и исходники если они есть для обоих сравниваемых прошивок, тут работа с гит подключается, и это начинает напоминать android-studio, и вроде как решение напрашивается само юзать эклипс. Но что то мне не нравится оно )

(ну и само собой если подключать исходники возможно сравнение прошивки на соответствие предполагаемому исходнику)

4) Дополнение к идеи 2 не обязательно хранить образ каждого ASOP можно хранить базу хэшей файлов. Ну тогда можно хранить и не только от AOSP. Будет возможен быстрый анализ, но глубокого без полной сборки не провести.
  • 0

Аватара пользователя
sm2pda
Новичок
 
Сообщения: 1
Зарегистрирован: 19 сен 2015, 05:10
Репутация: 0

Вернуться в Программная часть КПК

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

x

#{title}

#{text}