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 023 thoughts on “Android: как установить два одинаковых приложения на один телефон”

    1. Как я и написал чуть ниже, приложения, аналогичные WhatsApp, Viber, Telegram и тому подобным, не получается клонировать из-за особенностей активации. Но ты всё-таки можешь попытаться установить этот клон: http://dfiles.ru/files/veu29uog3

    1. Ситуация
      следующая, если распаковывать утилитами apktool или SmartApkTool, то все
      получается, но появляется папка «smali» с кучами файлами, и там нет того что
      нужно – «AndroidManifest.xml».

      Второй
      вариант который я использовал, это распаковать архиватором (7-Zip ), тогда все
      как в Вашем описании есть этот файлик -«AndroidManifest.xml»
      но если его открыть например «Notepad++»
      то половину текста крякозябликов. Я так понимаю что он зашифрован. Можете
      подсказать как мне его прочитать, а то мне нужно третья и возможно четвертая
      копия программы mobiletaxi.

    2. Архиватором бессмысленно открывать или распаковывать.
      А вот с помощью apktool ты всё делаешь правильно. Но файл «AndroidManifest.xml» нужно искать не в директории «smali», а в той директории, куда идёт распаковка apk (т.е. на одном уровне с директорией «smali»). Он нормально откроется любым текстовым редактором.

    3. Помогла нормальной распаковке новая версия apktool_2.0.0rc3 — только после сохранения нужно переименовать просто в «apktool»

    4. Ура, получилось клонировать программу mobiletaxi. Если кого заинтересует, я могу сделать нужное количество копий. Пишите на почту verbatim@bigmir.net — 50грн/1копия

    1. Работает отлично.
      Только просьба сделать новую 1.2.7 версию та что вы дали старая 1.2.5

  1. Приветствую. почти 4 часа менял параметры, но не помогло. Теперь прошу помощи у Вас. Попробуйте изменить https://yadi.sk/d/j1Vv3bwJduUr7 Необходимо чтоб вставала вместе с версией 2.0. Заранее благодарю.

    1. Спасибо за труд. Устанавливается. Но при запуске вылетает. Даже если установлено одно. Без оригинальной версии. В чем может быть проблема?

    1. Не понял просьбы. А копии WhatsApp и прочих подобных приложений (Telegram, Viber) неработоспособны из-за особенностей активации.

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

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