Нам понадобятся:
— Прямые руки
— Любой доступный хекс-редактор
— Очень желательно — Notepad++ — для удобного просмотра дампов
— libminecraftpe.so (библиотека майнкрафта) — из старой версии (откуда портируем) и из новой
-Android ModKit (чтобы достать с телефона libminecraftpe.so)
— Ну, и сам патч, конечно
Начнём:
Распаковываем Android ModKit в любую папку. Кладем libminecraftpe.so старой версии в папку lib.
Теперь запускаем ModKit.bat и выбираем второй пункт. Ждем пару минут. Готово, в папке out появился заветный дамп. Переименовываем его в соответствии с номером версии, например — dump_0.6.1.txt
libminecraftpe.so старой версии смело удаляем, вместо нее кладем в папку эту же библиотеку новой версии. Опять делаем дамп через ModKit.bat. Новый дамп тоже переименовываем, например — dump_0.7.1.txt
Что мы видим?
Первые три байта «самого патча» — адрес в библиотеке. Попробуем найти такой же в нашем дампе. Выделяем эти самые три байта (12 62 72) и жмем Ctrl+Shift+C (таким образом скопируется не текст, что справа, а именно хекс).
Идем в дамп 0.6.1, жмем Ctrl+F и в окошечко — Ctrl+V. Скорее всего, найдет нужный нам адрес. Если не нашелся — попробуйте полистать вручную, до похожего адреса. У меня все сразу нашлось.
Смотрим название функции чуть выше: PrimedTnt::explode. И запоминаем номер строчки, если считать от названия функции. В нашем случае — 6 строчка.
Теперь идем в дамп 0.7.1. Находим там функцию с таким же названием. Теперь внимательно сравниваем промежуток от названия функции до 6 строчки (включительно). Они должны совпадать! Если совпадают — вам повезло, хотя, если учесть, что разрабы код старых функций не часто менять, это вряд ли везение. Если же нет — вам очень нужно знание ассемблера, просто так этот патч не перенести, хотя можно попробовать найти похожую строчку.
Итак, совпадает. В 6 строчке от названия смотрим число слева и вручную вписываем в хекс редакторе вместо старого. Сохраняем патч, тестируем.
Если патчей несколько, друг за другом, повторяем вышеописанное (начиная с поиска в дампе старой версии) для каждого по отдельности.
detector