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. Антон, здравствуйте. Пробовал сам сделать копию приложения такси, но при открытии пишет «Такси остановлено». Буду очень признателен Вам за помощь. http://rghost.ru/51999892

    1. Большое спасибо!)) Приложения установилось, но одновременно оба когда запущены ни одно не работает корректно…(( Но всё равно больше спасибо!!

    2. Теряет связть с gps спутниками и постоянно идет «коннект» — «дисконнект» :((

    3. К сожалению, тогда вряд ли получится. Вглубь приложений я не лезу… Чаще всего бывает достаточно того, что приложения устанавливаются вместе. В некоторых «трудных» случаях бывает и так, что после этого работоспособность нарушается.

    1. Шаман вы батенька, работает, большое спасибо. Отправил полтинничек на яндекс

    1. Ты считаешь, что что-то изменится, если переименовать файл?

    2. он не переименован это демо версия, есле будет клон работать то мы её купим.

    3. И всё равно даже купленную версию я менять не буду, так что не вижу смысла менять и демо.

    1. Спасибо.
      Запускается, но, к сожалению, подтягиваются данные, которые вводились последними в обе копии.
      P.S. У тебя уже была готовая копия или быстро склепал? Просто видно, что старался… и 3 лого поменял и название на всех языках

    2. Нет, копия не была готова заранее. Я просто автоматизировал процесс создания копий (см. постскриптум к статье).

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

      1. Нет гарантии, что вообще получится: может, там какая-то защита стоит.

      2. Такая организация, как банк, не погладит по головке за столь грубое вмешательство в функционал приложения.

      3. Последнее, но самое главное: я просто не клиент этого банка, и не смогу проверить функционал приложения.

    3. Сначала я сам пытался сделать копию по инструкции, потратил около часа времени, но приложение не запускалось.
      Скачал твой АПК, распаковал, посмотрел на отличия с оригиналом, сделал папку COPY по аналогии и замену по содержимому всех файлов на новый процесс и новый путь к папкам с COPY… (сам понимаешь, что стремно пользоваться таким приложением по твоей ссылке из соображений безопасности). Приложение запустилось, запросило новые данные, ввел логин2, после ввода в оригинале хоть и стоял по умолчанию старый логин1, но пароль не подошел (т.е. на самом деле там логин2, а мне показывает логин1).
      Внимательнее посмотрев твой АПК решил установить, но там та же проблема.
      В любом случае большое спасибо за старания!

    4. Попробуй ещё, у тебя есть шанс добиться результата. Причина того, что копия использует те же данные, может быть следующей: где-то в файлах smali жёстко прописан путь к папке с данными приложения. Тебе просто нужно найти этот путь и в копии изменить его. Скорее всего, так и есть, хотя это только предположение.

      Что касается папки copy, то это всего лишь один из путей. Он более трудозатратный (т.к. приходится менять кучу файлов smali), но при автоматизированном подходе более удобный (т.к. не нужно решать “проблему 2”, которая при ручном изменении как раз наоборот, решается проще). То есть, ты вполне можешь делать так, как написано в инструкции.

    5. Я не программист, тем более в приложениях под андроид. Впервые распаковывал, пытался ковырять и запаковывать.

      К сожалению, я не понимаю сути того, что сделал, просто повторил по аналогии с твоим АПК, содержимое файлов менял пакетно, вручную было бы ооочень долго, файлов больше 1600.
      Я же писал, сначала сделал по инструкции, копия устанавливалась, но не запускалась с ошибкой в процессе. Второй вариант хотя бы запускается :)

      А здорово ты придумал «занегативить» иконки… тем более всё это автомизировать.

    1. Прочитайте, пожалуйста, правила составления заказа. И давайте не тратить время друг друга, хорошо? :)

  2. Привет! ничего не могу сделать с этой прогой, вроде распаковываю, исправляю, и запаковываю назад… но пишет при установке что программа не установлена….как тебе можно ее сбросить? или куда?

    1. это мобайл такси только не стандартный… по этому и прошу посмотреть, та прога что ты дал у меня давно есть, нужно исправить конкретно этот файл….

    2. мне этот не нужен, он стандартный…. переделай то что я тебе дал, если получится….

    3. Я переделал именно его. Именно тот файл, что ты давал по ссылке http://www.fayloobmennik.net/3540226 с паролем 13. Назывался файл ftr2_joker.apk. Если и это не тот, то дай уже наконец тот, который нужно переделать.

    4. пароль на скачивание 13

      в маркете его нет…

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

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