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

  1. Привет. Подскажите с проблемой №1. там написано «в домашней директории пользователя найдите папку apktoolframework и удалите из неё файл1.apk.» где это домашняя директория? у меня просто при распаковке SystemUI.apk не создается apktool.yml

    1. Обычно домашняя директория находится тут:

      <pre>C:Users<имя_пользователя>

      Вместо вставь то имя, которым ты назвал свой аккаунт в Windows.

    1. К сожалению, не получается. Причина: ошибка в программе apktool. Она известна разработчикам:
      http://goo.gl/KjAiYo
      Так что пока только остаётся надеяться, что исправят в будущем.

  2. Ребята, работаю в такси, в разных компаниях, на один телефон нужно поставить две одинаковые программы, разработчики говорят что так делать нельзя. помогите мне пожалуйста, создайте мне программу клон. заранее благодарен вам.
    вот ссылка на программу!
    Страница программы: http://help.taximaster.ru/index.php/TMDriver_для_Android
    Прямая ссылка на файл апк: http://files.bitmaster.ru/TM/android/TMDriver_2_3_8.apk

    1. У меня не получаеться нет брокера при подключении к торговому счету

  3. попробовал сам изменить, да не вышло. при запуске измененного приложения вылетает сообщение что приложение остановлено и все. Если не сложно то можно изменить вот этут игрулю?? https://play.google.com/store/apps/details?id=com.supercell.hayday&hl=ru

    надо чтобы на одном устройстве можно было одновременно с 2х аккаунтов играть.

    1. РАБОТАЕТ!!!!! Супер! на яндекс лови на пиво :)

    1. Спасибо огромное,особенно от мужа,все отлично работает! сбербанк-онлайн сегодня тормозит, попробую еще раз завтра перевести монетку

    1. Понял, о чём ты. Одну букву в адресе забыл. Вот копия, пробуй:
      http://coin-ads.com/9rbVQH
      (в правом верхнем углу экрана нажми красную кнопку «Skip Ad»)

    1. Делал ранее: http://coin-ads.com/rLke67
      (В правом верхнем углу красная кнопка «Skip Ad».)
      Если что-то в самом функционале программы не работает, то извини: я делаю только копии, чтобы устанавливались и работали совместно. Для большинства программ этого вполне достаточно. Но глубже копать не возьмусь.

    1. Пункт 6:

      Если вы попросите меня
      сделать копию ломаного, крякнутого,
      ворованного, варезного (и т.п.) файла,
      то, скорее всего, я ничего не сделаю.

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

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