Данную статью не стоит принимать, как универсальную инструкцию.
Для ряда программ достаточно просто изменить "package=" в файле AndroidManifest.xml. Для других - даже просто разобрать APK с помощью apktool и собрать без изменений ей же назад в пакет - уже приведет к проблемам. Так что вопрос этой темы - очень творческий, и описать его в одной статье просто невозможно.
Описанный ниже способ сработал на Lampa, с небольшими изменениями на FX File Explorer, но на ряде приложений, например, на MiXplorer он не приводит к результату.
--------------------------------------------------------------------------------------
Для установки пакетов на устройства с урезанным маркетплейсом, может потребоваться поменять имя пакета внутри APK.
Опишу как превратить APK файл от Lampa в, например, IPTV Portal.
Я пробовал готовые утилиты, переименовывающие пакеты - однако с ними у меня именно Лампа не заработала. Зато вручную всё прошло гладко.
Для ручного переименования потребуются утилиты apktool (чтобы "разобрать" и потом "собрать назад" APK), apksigner (подойдет любая утилита, подписывающая готовые АРК).
1. Разбираем APK Лампы на составляющие:
java.exe -jar apktool_2.9.3.jar d lampa.apk
Будет создана папка lampa с развернутым и готовым для редактирования содержимым АРК.
2. В папке правим файл AndroidManifest.xml, в самой первой строке заменяем package="top.rootu.lampa" (название пакета лампы) на package="ru.iptvportal.stb". Другие строки не трогаем. В инструкциях, бродящих по интернету, правят также файл apktool.yml - но у меня в нем строк с именем пакета не было.
3. Идем в папки smali, smali_classes2, smali_classes3 и тд. Находим в них папки, принадлежащие Лампе (top/rootu/lampa) и копируем их в папки с названием подменяемого приложения (ru/iptvportal/stb). Именно копируем, а не переименовываем, как делают некоторые утилиты. Таким образом мы сохраняем старые классы - повышаем шанс, что пакет потом заработает.
См скриншот, слева оригинальный путь, справа новый:
4. А теперь самое ответственное. Внутри всех файлов в "новых" папках smali*/ru/iptvportal/stb ищем строку "Ltop/rootu/lampa" (без кавычек, L заглавная, после нее имя класса Лампы, разделенное слешами) и заменяем на "Lru/iptvportal/stb" (тоже без кавычек). Меняем везде:
Данное действие проводим только над новыми файлами в папках smali, созданными в пункте 3, другие файлы и папки не трогаем!
4.1 Добавлено 17.12.2024: требуется также поправить файл AndroidMainfest.xml. Везде где в строках указано относительное имя класса (например, строки вида android:value=".some.string") надо поменять на полное имя класса относительно оригинального имени пакета (android:value="top.rootu.lampa.some.string").
5. Собираем APK назад:
java.exe -jar apktool_2.9.3.jar b lampa
Новый APK будет лежать в папке lampa/dist.
6. Подписываем APK.
java.exe -jar apksigner.jar sign --ks mykey.jks lampa/dist/lampa.apk
После чего тестируем и убеждаемся, что Лампа заработала, но в списке пакетов у нее числится класс ru.iptvportal.stb.