Стол заказов — в конце статьи.
Для установки двух (или больше) одинаковых приложений на один телефон нужно сменить значение 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
Пулл-реквесты приветствуются!
Здравствуйте клонируйте пожалуйста http://4pda.ru/forum/dl/post/5319006/com.chillingo.ironforce.android.rowgplay.apk
спасибо
Пробуйте: http://dfiles.ru/files/ryfynmyqu
Здравствуйте. Хотелось бы копию вот этого заполучить https://play.google.com/store/apps/details?id=ru.godville.android&hl=ru
Пробуйте: http://dfiles.ru/files/c4ry3zipb
Большое спасибо. Все работает.
Здравствуйте,пока не могу вьехать ,что делаю не правильно.По вашему совету скачал последнюю версию apktool и начал декомпилировать.Прошлой ошибки уже нет но есть новая,что то говорится про PATCH. И ещё в Вашей инструкции в проблемме 3 на картинке «было» и «стало» одно и тоже .Не могли бы Вы исправить и написать как оно должно быть.Жду совета.Спасибо.
Напишите ошибку полностью.
В «Проблеме 3» представлен разный код, посмотрите внимательнее. Строка с изменениями выделена жёлтым цветом.
Прошу прощения ,посмотрел через другой браузер и увидел строку полностью.По поводу ошибки,как только доберусь до компа напишу её полностью.
Здравствуйте , мозги мои закипают ,не знаю что делаю не так . Приложение распаковалось , попытка 1:сменил значение package в файле AndroidManifest.xml , как написано в инструкции , приложение установилось , запустилось , но теперь не устанавливается оригинал — конфликт провайдера.Попытка 2:сменил значение package и provider как написано в инструкции ,приложение установилось но при запуске вылетает — приложение остановлено.Попытка3:меняю значение package и там где встречается такое же имя , как в Вашем клоне , приложение установилось но при запуске вылетает — приложение остановлено . Помогите мне добить этот вопрос .
Пришлите Вашу копию приложения, и я скажу, что там не так.
Добрый вечер , вот ссылка на мое переделанное приложение :http://dfiles.ru/files/2lvvy32nt . С нетерпением жду поправок ,что не так.
Ошибка такая:
У Вас в коде стоит провайдер:
Рекомендую всё-таки именно в провайдере ставить либо в начале, либо в конце¹ тот текст, который Вы добавляете. Но не в середине. Например, так:
Кстати, у Вас там есть ещё один провайдер, который будет конфликтовать, хоть и не содержит названия пакета «com.evos»:
Там тоже нужно добавить текст «top» либо в начале, либо в конце:
¹) Если в конце не получится, попробуйте ставить «top.» в начале.
Чем тестируете приложение ?
как узнали что ошибка в
Failed to find provider info for com.evos.providers.CommonContentProvider
(adb — утилита из состава Android SDK)
Поправьте меня если я не верно понял Вас, подключаете устройство к ПК (телефон или емулятор) потом, устанавливаете приложение, запускаете его: Ошибка, потом — команда ?
adb logcat *:E
Смотрите лог. Верно ?
В момент запуска программы на телефоне утилита logcat должна работать. Потому что ошибок обычно много, и затем трудно их найти, ковыряясь в логах.
В общем, всё происходит так:
— подключаю телефон кабелем (или по Wi-Fi);
— запускаю в терминале adb logcat *:E (если нужны только ошибки; если все сообщения, то просто adb logcat)$
— запускаю приложение на телефоне;
— смотрю на лог и останавливаю после появления ошибок с помощью Ctrl+C.
Здравствуйте , спасибо ,что возитесь со мной .Сделал как Вы сказали : ставил в начале и в конце , приложение установилось , но при запуске вылетает с сообщением » приложение остановлено «. Вот ссылка на новое переделанное приложение :http://dfiles.ru/files/d2utkusal
Честно сказать, уж и не знаю, что тут можно сделать. Видимо, какой-то сложный случай. Я меняю немного по-другому, не так, как в статье: не только меняю имя package, но и переношу файлы в другую папку (чтобы соблюдались пути). На самом деле, оба способа идентичны, просто один (в статье) проще для ручной обработки, а другой (тот, которым делаю я) проще для автоматической обработки с помощью моего скрипта (ссылка на него в конце статьи).
Чтобы Вы не очень расстраивались, скажу, что вторым способом тоже не всегда получается сделать копию, и тогда я делаю вручную (как в статье). Зависит от программы. И я не всегда понимаю, что именно влияет. Правда, радует одно: подавляющее большинство программ можно сделать и тем, и другим способом. Сложные случаи достаточно редки.
Вот ссылка на копию последней версии MobileTaxi: http://dfiles.ru/files/wunnwapv8
Решил еще помучатся , теперь при сборке в apktool появились такие строки:warning:string app__user_id has no defaulttranlation.
warning:string blank has no default translation.
Эти строки ни на что не влияют.
Здравствуйте.
Помогите сделать клон приложения LINE 4.7.1 версия.
http://4pda.ru/forum/dl/post/5358808/LINE_4.7.1.apk
Маркет https://play.google.com/store/apps/details?id=jp.naver.line.android
Должен сразу предупредить, что копия вряд ли будет правильно работать из-за особенностей авторизации таких приложений как WhatsApp, LINE, Viber и т.п.
Вот ссылка: http://dfiles.ru/files/ww49soidw
Доброго времени суток!
Будьте любезны помогите вот с этим: https://play.google.com/store/apps/details?id=com.whatsapp
Должен сразу предупредить, что копия вряд ли будет правильно работать из-за особенностей авторизации таких приложений как WhatsApp, LINE, Viber и т.п.
Вот ссылка: http://dfiles.ru/files/1kswij4lt
Спасибо огромное! Протестируем сегодня посмотрим что получится. Отпишусь потом!
К сожалению приложение хоть и установилась, запускаться отказывается. При открытии выдает ошибку что «приложение остановилась» и закрывается.
Есть идеи как это исправить?
Попробуй эту версию: http://dfiles.ru/files/03gypf8bs