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. уже нашла здесь же ранее ссылку,спасибо)

    1. Deposit files!За что? Почему так жестоко?

    2. лучше бы я.диск себе сделал. А депосит это бред

    3. Это друг. Я попробовал скачать но не работает твоя ссылка. По ней старая версия, 1.0.16. А уже 1.0.33 вышла. ППеределай Пожалуйста

  1. Привет, автор) Если не трудно, сделай копию этого приложения: http://www.androeed.net/files/ga/14810.html
    Извини, что ссылка не на play market, т.к. оно там платное…
    Заранее спасибо за труд и за потраченное время.:)

    1. Привет!

      <pre>

      6. Если вы попросите меня сделать копию ломаного, крякнутого, ворованного, варезного и т.д. файла, то, скорее всего, я ничего не сделаю.</pre>
    2. Хочу пояснить: в плей маркет еще не добавили, т.к. это версия для тестирования

    3. сделай пожалуйста это не воровство и не кряк

    4. Но если я это выложу, то получится, что я распространяю контрафактную версию платной программы. Извини, мне это не нужно.

      PS. На этом сайте есть форма обратной связи ;)

    5. в общем, я с 6 попытки все таки установил. Спасибо за информацию)

    1. Добрый вечер автор. Сделайте пожалуйста клон этого приложения если можноhttp://www.whatsapp.com/download/ не смог с маркета ссылку кинуть

  2. Добрый вечер автор. Сделайте пожалуйста клон этого приложения если можноhttp://www.whatsapp.com/downlo… не смог с маркета ссылку кинуть

    1. Ты не манифест отправь, ты дай именно билд (файл .apk), который ты устанавливаешь (и который вызывает ошибку). Так проще определить, запустив программу на телефоне и почитав ошибки.

    2. Ну во-первых, лучше менять так, как я писал: дописывать в конце package name какое-то слово после точки. Т.е. лучше не «com.evosb1a2», а «com.evos.b1a2». В общем случае оба варианта возможны, но есть вероятность, что придётся вносить какие-то дополнительные изменения в первом случае.

      Во-вторых, в «Проблеме 2» сказано, что в activity нужно прописывать не новое package name, а старое. Т.е., например, вместо

      android:name="com.evosb1a2.view.impl.FrontMenuActivity"

      должно быть

      android:name="com.evos.view.impl.FrontMenuActivity"

      PS. Вот ссылка на копию, которая должна работать: http://dfiles.ru/files/4nblr7ywb

    3. Спасибо за ответ. Но в вашей копии, которую я скачал активити прописано новое «copy.com.evos», а старое «com.evos», но все равно работет. Не могу понять,что я делаю не так

    4. Объясню. Статья описывает «ручной» способ изменения файлов, а я пользуюсь специально написанным для этих целей скриптом (ссылка на него в конце статьи). Если вкратце, то для каждого из этих двух вариантов удобнее свой способ: делать изменения либо в начале, либо в конце package name.
      Проще говоря, если ручками делаешь, то лучше делать именно так, как написано в статье.

    5. Это я понял, я использую Notepad++, он в принципе тоже сам меняет. Я говорю о том, что вы мне советуете сделать как в «Проблема 2», хотя в вашем apk прописан новый активити, а не старый.
      На данный я все еще стараюсь собрать apk)

    6. Я не совсем про автозамену, ну да ладно. В общем, лучше делать так, как в статье :-)

    7. та вот именно, что делаю, но не устанавливается(

    8. Вот,посмотрие еще раз мой apk,пожалуйста.
      Сделал все по статье, так как в вашем apk, но все равно не устанавливается.
      http://dfiles.ru/files/h96doyw0e

  3. добрый день. прочел вашу статью очень подробная она, но к сожалению не смогу такое сделать, а оч нужн . Если сможите сделайте клон этой пороги http://evos.in.ua/android/mobiletaxi.apk
    Со своей стороны по стараюсь вам что то закинуть на кошелё . Спасибо заране .

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

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