Стол заказов — в конце статьи.
Для установки двух (или больше) одинаковых приложений на один телефон нужно сменить значение package
в файле AndroidManifest.xml
, находящемся внутри apk-билда.
Например, имеем:
android:versioncode="20110420"
android:versionname="1.8.0"
package="ru.e_num"
xmlns:android="http://schemas.android.com/apk/res/android">
Для того, чтобы установить это приложение ещё раз, нужно сделать примерно следующее:
android:versioncode="20110420"
android:versionname="1.8.0"
package="ru.e_num.test"
xmlns:android="http://schemas.android.com/apk/res/android">
После такого изменения заново собранный apk-файл придётся подписать сертификатом. Информацию о том, как распаковывать, запаковывать и подписывать apk-файлы, можно найти в любом поисковике по запросу SmartApkTool. Вот ссылка на приложение: v.2.2 (распакуйте содержимое архива в пустую директорию). А вот более правильный способ работы с apk-файлами: Использование apktool.
Совет. Устанавливайте одну из копий неизменённой, чтобы знать об обновлениях в Маркете.
Под катом описаны некоторые встречающиеся проблемы, а также находится Стол Заказов.
ВОЗМОЖНЫЕ ПРОБЛЕМЫ
Проблема 1
Если рядом с AndroidManifest.xml
не создаётся файл apktool.yml
, то в домашней директории пользователя найдите папку apktool\framework
и удалите из неё файл 1.apk
. (Совет с 4pda.ru, спасибо Alex Boroda.)
Проблема 2
Иногда обычная смена имени package
не помогает. Чаще всего это бывает в случаях, когда в файле AndroidManifest.xml
прописаны относительные пути к различным активити. Например:
android:label="E-NUM"
android:name=".SplashScreenActivity"
android:screenOrientation="portrait">
В такой ситуации нужно прописать полный путь ко всем активити, то есть:
android:label="E-NUM"
android:name="ru.e_num.SplashScreenActivity"
android:screenOrientation="portrait">
Обратите внимание, что прописывать нужно не новое имя package (то есть в нашем случае не ru.e_num.test
), а реальный путь к активити в директории smali
распакованного apk-файла. Естественно, в общем случае путь совпадает со старым именем package
(в нашем случае это ru.e_num
).
Проблема 3
Если в файле AndroidManifest.xml
есть тег provider
, то в его атрибуте authorities
нужно также дописать символы, которые мы использовали в качестве дополнения к параметру package
(в нашем случае это .test
). Например, было:
android:authorities="com.someapp.android"
android:name="com.someapp.android">
Стало:
android:authorities="com.someapp.android.test"
android:name="com.someapp.android">
Как и в проблеме 2, значение атрибута name
менять не надо.
Стол заказов
Я снова принимаю заказы! Если вы прочитали инструкцию, но у вас с ней возникли какие-то сложности, пишите в комментариях ссылку на приложение. Это обязательно! Искать «вайбер» или «клаш оф кланс» я не буду. Одну копию я делаю бесплатно. Результат не гарантирую — тестируйте. Если нужно больше копий, или есть какие-либо нестандартные пожелания — пишите в обратку, договоримся. Если хотите отблагодарить пинтой пива и за одну копию, то кошельки здесь.
PS. Пользователи *NIX-систем могут попробовать сделать копии приложений автоматически с помощью этого несложного bash-скрипта:
https://github.com/kodopik/Copyroid
Пулл-реквесты приветствуются!
Добрый день! Сделал клон «Друг Вокруг» установил все работало все хорошо пока для эксперимента не создал и не установил третий клон после этого начела вылетать клон что только не пробовал… У кого такая проблема? Помогите советом
Добрый день!
С удовольствием кину монетку на пиво, если сделаете клон вот этого — https://play.google.com/store/apps/details?id=ru.sberbankmobile
Пробуйте: http://dfiles.ru/files/nju7o05rf
Уважаемый KodopiK, имею большое желание научиться, но Ваш мануал не помогает. На данный момент пытаюсь пользоваться batch apktool, т.к считается что она лучшая в этом. После декомпиляции apk, если изменяю манифест или удаляю языки, либо apk не компелируются, либо происходит сбой при разборе пакета.
К сожалению, я не знаю, что именно Вы меняете, поэтому не могу ответить на вопрос. Можете прислать пример разобранного и изменённого приложения, я посмотрю логи при сборке.
Пытаю создать копию программы TeamViewer. https://play.google.com/store/apps/details?id=com.teamviewer.teamviewer.market.mobile&hl=ru .
Декомпелирует, добавляю в package Test
Вот лог рекомпиляции:
Batch ApkTool : 3.0
SMALI : smali-2.0.5.jar
API level : 21
APKTOOL : apktool_2.0.0rc4.jar
Build in EXPERT mode : ON
Sign output APKs : ON
Task started : 08.04.2015 22:44:24
—————————————————
[*] Recompiling TeamViewer
I: Using Apktool 2.0.0-RC4_0322
W: Could not find sources
I: Checking whether resources has changed…
I: Building resources…
D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerreslayout-hdpiactivity_client.xml:6: error: Error parsing XML: not well-formed (invalid token)
D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerreslayoutfragment_buddylistdetailscomputer.xml:4: error: Error parsing XML: not well-formed (invalid token)
D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerreslayoutfragment_buddylistdetailsinstantsupport.xml:4: error: Error parsing XML: not well-formed (invalid token)
D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerreslayoutfragment_buddylistdetailspartner.xml:4: error: Error parsing XML: not well-formed (invalid token)
D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerreslayout-hdpifragment_buddylistlogin.xml:4: error: Error parsing XML: not well-formed (invalid token)
D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerreslayout-hdpifragment_connect.xml:4: error: Error parsing XML: not well-formed (invalid token)
D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerreslayout-hdpifragment_filetransfer_login.xml:4: error: Error parsing XML: not well-formed (invalid token)
D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerreslayout-hdpifragment_filetransfer_pl_login.xml:4: error: Error parsing XML: not well-formed (invalid token)
D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerreslayoutfragment_help_mouse.xml:7: error: Error parsing XML: not well-formed (invalid token)
D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerreslayout-landfragment_help_mouse.xml:7: error: Error parsing XML: not well-formed (invalid token)
D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerreslayoutfragment_help_touch.xml:7: error: Error parsing XML: not well-formed (invalid token)
D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerreslayout-landfragment_help_touch.xml:7: error: Error parsing XML: not well-formed (invalid token)
D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerreslayoutfragment_help_touch2touch.xml:7: error: Error parsing XML: not well-formed (invalid token)
Exception in thread «main» brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [C:UsersPredatorAppDataLocalTempBAT_tempbrut_util_Jar_369695541633834680.tmp, p, —forced-package-id, 127, —min-sdk-version, 10, —target-sdk-version, 19, —version-code, 2650, —version-name, 10.0.2650, -F, C:UsersPredatorAppDataLocalTempBAT_tempAPKTOOL1487116638181724639.tmp, -0, arsc, -I, .framework1.apk, -S, D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerres, -M, D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerAndroidManifest.xml]
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:443)
at brut.androlib.Androlib.buildResources(Androlib.java:380)
at brut.androlib.Androlib.build(Androlib.java:283)
at brut.androlib.Androlib.build(Androlib.java:255)
at brut.apktool.Main.cmdBuild(Main.java:225)
at brut.apktool.Main.main(Main.java:84)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [C:UsersPredatorAppDataLocalTempBAT_tempbrut_util_Jar_369695541633834680.tmp, p, —forced-package-id, 127, —min-sdk-version, 10, —target-sdk-version, 19, —version-code, 2650, —version-name, 10.0.2650, -F, C:UsersPredatorAppDataLocalTempBAT_tempAPKTOOL1487116638181724639.tmp, -0, arsc, -I, .framework1.apk, -S, D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerres, -M, D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerAndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:511)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:429)
… 5 more
Caused by: brut.common.BrutException: could not exec command: [C:UsersPredatorAppDataLocalTempBAT_tempbrut_util_Jar_369695541633834680.tmp, p, —forced-package-id, 127, —min-sdk-version, 10, —target-sdk-version, 19, —version-code, 2650, —version-name, 10.0.2650, -F, C:UsersPredatorAppDataLocalTempBAT_tempAPKTOOL1487116638181724639.tmp, -0, arsc, -I, .framework1.apk, -S, D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerres, -M, D:PredatorDesktopBatchApkToolbin.._INPUT_APKTeamViewerAndroidManifest.xml]
at brut.util.OS.exec(OS.java:89)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:505)
… 6 more
[*] —> Error recompiling «TeamViewer»
DONE with 1 ERRORS.
Так же, если интересно, сделал персонально для Вас коротенькое видео процесса : https://youtu.be/elsCCPMsNQM
Вы можете посмотреть, что не так в тех файлах, которые упоминаются в логах. Они действительно «not well-formed», т.к. используются какие-то странные символы вместо ASCII, что запрещено стандартом XML. Разработчики либо случайно игнорируют стандарты, либо намеренно так «пошутили».
Скорее всего, второе. Зайдите в директорию smali/o распакованного приложения. Там у всех файлов имена на не латинице.
Да я посмотрел файлы, очень странные названия. Значит не удастся сделать копию.
Можно, но оооочень трудоёмко. Придётся менять названия файлов и, соответственно, все ссылки на них внутри всех файлов *.xml и *.smali.
Овчинка выделки не стоит, сейчас не те времена, один акк можно одновременно запустить на разных устройствах. Спасибо за ответы ))).
здравствуйте уважаемый) с меня пивко ) нужен клон инстаграм ))) желательно пару штук) получится ?
Получится, если дадите ссылку. Или поищите здесь ниже в комментариях.
А как Вы меняете цвет иконок?
Я просто инвертирую цвета. Если под «как» Вы подразумеваете «чем», то это convert из пакета imagemagick.
Можно копию этого? Версия специально старая, поэтому ссылка не на маркете
https://www.dropbox.com/s/huqt59memtb8jb5/com.kabam.fortress.apk?dl=0
Пробуйте: http://dfiles.ru/files/qq3quylug
Огромное Вам спасибо!!! А то никак не получалось сделать, хотя вроде все по уму, декомпилировал, переименовывал, компилировал и подписывал, устанавливалось нормально но не запускалось, вечно ошибку выдавало, не могу понять в чем проблема=(
Здравствуйте, можете пожалуйста сделать копию инстаграма, пытался, по по каким то причинам не выходит, был бы признателен http://www.apkmirror.com/apk/instagram/instagram-instagram/instagram-6-11-2-android-apk-download/
https://play.google.com/store/apps/details?id=com.instagram.android&hl=ru
Пробуйте: http://dfiles.ru/files/vgl38yqqp
Добрый день. Сделайте пожалуйста копию https://play.google.com/store/apps/details?id=ru.comepay.monitoring
нужно для работы, приходится носить второй телефон, т.к. одна программа ведет только одну сетку терминалов. Кстати на ява-телефонах можно установить 3-4 приложения и контролировать все терминалы.
Пробуйте: http://dfiles.ru/files/j8f0gffkf
Отлично! Все работает! Спасибо.
Добрый ночи) сделайте пожалуйста крпию clash of clans очень надо)ЗАРАНЕЕ СПАСИБО))
Здравствуйте, мне очень нужна копия игры HappyFarm сделайте пожалуйста, хотелось бы побыстрее. Сасибо. Пожалуйста если можно, то побыстрее.