Copyroid

Android: как установить два одинаковых приложения на один телефон

Стол заказов — в конце статьи.

Для установки двух (или больше) одинаковых приложений на один телефон нужно сменить значение package в файле AndroidManifest.xml, находящемся внутри apk-билда.
Например, имеем:

<manifest
android:versioncode="20110420"
android:versionname="1.8.0"
package="ru.e_num"
xmlns:android="http://schemas.android.com/apk/res/android">

Для того, чтобы установить это приложение ещё раз, нужно сделать примерно следующее:

<manifest
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 прописаны относительные пути к различным активити. Например:

<activity
android:label="E-NUM"
android:name=".SplashScreenActivity"
android:screenOrientation="portrait">

В такой ситуации нужно прописать полный путь ко всем активити, то есть:

<activity
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). Например, было:

<provider
android:authorities="com.someapp.android"
android:name="com.someapp.android">

Стало:

<provider
android:authorities="com.someapp.android.test"
android:name="com.someapp.android">

Как и в проблеме 2, значение атрибута name менять не надо.

Стол заказов

Я снова принимаю заказы! Если вы прочитали инструкцию, но у вас с ней возникли какие-то сложности, пишите в комментариях ссылку на приложение. Это обязательно! Искать «вайбер» или «клаш оф кланс» я не буду. Одну копию я делаю бесплатно. Результат не гарантирую — тестируйте. Если нужно больше копий, или есть какие-либо нестандартные пожелания — пишите в обратку, договоримся. Если хотите отблагодарить пинтой пива и за одну копию, то кошельки здесь.

PS. Пользователи *NIX-систем могут попробовать сделать копии приложений автоматически с помощью этого несложного bash-скрипта:
https://github.com/kodopik/Copyroid
Пулл-реквесты приветствуются!

2 027 thoughts on “Android: как установить два одинаковых приложения на один телефон”

  1. https://play.google.com/store/apps/details?id=com.whatsapp

    Можете помочь с ватсапп? Я сделал. Устанавливается и запускается. Только вот при регистрации выдает ошибку. Sms проверка не удалась. Попробуйте голосовую. Голосовая тоже не работает. Заранее спасибо!

    1. К сожалению, много раз уже пытался сделать, не получалось. Приложение в качестве подтверждения регистрации принимает SMS. На один и тот же номер, очевидно, два аккаунта зарегистрировать нельзя. Попробуй поставить другую SIM-карту. Быть может, с ней удастся зарегистрироваться.

    2. у меня оригинал ватсапп зарегистрирован на другой номер. СМС был выслан на другой номер (телефон). и я ввел код. В смысле симка в телефоне где есть ватсапп свободная. он просто не хочет регистрироваться. и я пользовался разными номерами при регистрации.

    3. Пока ничего не могу сделать. Как уже говорил, раньше пробовал, не получилось.

  2. Здравствуйте! https://play.google.com/store/apps/details?id=com.its.taxi установлена эта программа такси, так же есть папка TAXI в которой логин и код активации, сделайте пожалуйста клон проги и чтоб при установке появилась вторая такая же папка(например TAXI1) чтоб клон сохранял туда логин и историю заказов. спасибо за ранее))

    1. слушай а можно так сделать: например папка TAXI в основной проге а в клоне чтоб отоброжалась как TAXIcopy? если не сложно сделай так пожалуйста))спс за ранее)

    2. Наверное, я не совсем понимаю, о какой ты папке. Пришли скриншот или объясни получше.
      Ну а вообще приложение-копия работает без проблем? Если да, то моя задача выполнена. Остальное — «капризы» из пункта 5.

    3. блин если сможешь я даже отблагодарю тебя)))

    4. вот смотри: когда устанавливаешь эту прогу появляется папка такси с логином и с кодом активации, название папки: TAXI, т.е. в нее закладывается логин и код активации, когда устанавливаю клон,то он берет с этой же папки с названием TAXI, так вот можешь ли ты сделать так что бы когда я устанавливаю клон он создавал папку с названием не TAXI а например TAXI2 или TAXIcopy,а то при установке клона он берет данные с папки TAXI…вот как то так незнай понятно ли объяснил)))блин если сможешь сделать кину денег на пиво,за ранее тебе спасибо))

    5. спасибо большое!щас телефон с машины возьму и попробую)) логины и история заказов будут в разных папках?

    6. Узнаешь, когда попробуешь. У меня нет аккаунта для теста.

    1. спасибо большое!щас телефон с машины возьму и попробую)) логины и история заказов будут в разных папках?

    1. Ранее пробовал, не получилось. Копия устанавливается, но sms для подтверждения номера всё равно приходит «не туда».

    1. Установка начинается, после 3 секунд: Приложение не установлено. И всё. Помогите пожалуйста.

    2. нЕТ не работает, выдаёт =не установлено=. У вас две проги установлены? Какую ставили первой?

    3. Вот так установилась. Благодарю! лайк!

    4. Добрый … Ещё раз благодарю. Вопрос в следующем: пытался делать всё по инструкции — не получилось, попросил вас, вы сделали копию — работают две проги. Теперь разбираю вами сделаную прогу, ничего не меняю, собираю — она не работает. Бьюсь целый день! Пожалуйста подскажите в чём заковыка, где искать. Причём ведёт себя прога также как ваша первая, начинается установка, потом =не установлено=

    5. Нужно смотреть логи установки, чтобы выяснить причину. Может, вновь собранная версия не подписана сертификатом?

    6. Добрый день! Скажите, а у вас получилось самому поставить две mobiletaxi на один телефон? Если да, то не могли бы вы поделиться опытом. Заранее благодарю!

    7. Добрый день! Не могу открыть эту ссылку. Подскажите, плиз,в чем причина? Спасибо!

    8. Добрый день! Открыл измененный вами manifest и увидел измененные там activity, хотя в п.2 про ошибки писалось, что путь остается старым. Можете пояснить? Спасибо!

    9. Мой скрипт меняет чуть по-другому, но смысл тот же. Ему проще пройтись по всем значениям и поменять их. Вручную это делать тяжело, поэтому я описывал схожий, но другой метод.

    10. Добрый день! Пол дня просидел за компом, продвинулся :) >>> 1.распаковывается, запаковывается,подписывается, устанавливается, РАБОТАЕТ. 2. распаковывается, зап.,уст., работает если одна прога, если идет второй устанавливается, а при запуске выдает ошибку приложении и не открывается.

    11. Советую поискать на тему adb logcat и посмотреть логи установки и запуска.

    12. Спасибо за совет, хотя для меня это темный лес. А изменения вносятся только в manifest?

    13. Попробовал. Пытается устанавливаться вроде нормально, потом пишет >не удалось установить. Когда ставлю ее единственной, то становится и работает, но оригинал потом не становится. ???…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *