#java #android #dalvik #android-source #smali
#java #Android #dalvik #android-исходный код #smali
Вопрос:
Это может быть довольно сумасшедший вопрос, но я хотел получить некоторое представление об этом, прежде чем тратить все время на его попытки.
Возможно ли перестроить framework.jar (например, скажем, потянув за framework.jar из MIUI), декомпилировать его в smali, а затем перестроить с нуля (прочитав и переделав его самостоятельно в java)?
Я планировал сделать это взять похожие файлы из Cyanogen mod в качестве ссылки для сборки. Причина, по которой я был заинтересован во всем этом, заключалась в том, что у меня есть телефон, которому требуется более или менее перестроенный уровень радиоинтерфейса, и просто стало слишком сложно заниматься непосредственным редактированием smali и его отладкой.
Я подумал, что спрошу здесь, потому что люди будут менее склонны спешить с суждением о том, возможно это или нет. Я не понимаю, почему это не сработало бы, если бы вы добавили все правильно (теоретически) и перестроили файл classes.dex в исходном коде после.
Основная причина, по которой я спрашиваю, — это попытка перенести MIUI на мой телефон. Я полагал, что меньшая из слишком больших головных болей — это переписывание java и восстановление рабочего framework.jar (в котором есть части, отсутствующие в источниках CM7 или AOSP), чем редактирование framework.jar это поставляется с MIUI для корректной работы.
Ответ №1:
Хотя существуют различные способы декомпилировать файл dex обратно в java, ни один из них не создаст java, которая была бы идеально компилируемой. Вам пришлось бы потратить массу усилий на очистку кода Java от декомпилятора, чтобы заставить его скомпилироваться. Это в значительной степени не вариант для чего-то такого большого, как это.
Лучше всего, чтобы на вашем телефоне работало что-то вроде AOSP или CM, чтобы вы могли создавать фреймворк самостоятельно напрямую, с любыми изменениями, которые вам нужны.
Комментарии:
1. CM7 уже выпущен для моего телефона (неофициально). Я просто работал над портированием MIUI на него, в котором есть некоторые библиотеки и модификации в framework.jar которых нет в CM7. Я подумал, что могу изменить MIUI и добавить его в пакеты, связанные с фреймворком, на CM7 и перестроить его для работы с MIUI.
2. Хех. Именно поэтому меня не интересуют пользовательские ПЗУ, которые не выпускают свой исходный код :). Я предполагаю, что вы провели различие между фреймворком MIUI и CM? Возможно, вам удастся избежать декомпиляции файлов, связанных с конкретными функциями, которые вы хотите перенести или что-то в этом роде
3. Ах да, я это сделал и просто собирался попытаться внести изменения в это. Я ценю ваш быстрый ответ, и я видел его в IRC на freenode в #smali, поэтому я рад, что вы заметили мой вопрос и нашли время ответить. Спасибо!