Як зберегти дві версії програми?


43

Android Market щойно оновив додаток на моєму пристрої. Мені сподобалось оновлення, але воно повністю відрізняється від останньої версії, яка також була моєю улюбленою. Отже, я також хочу зберегти останню версію. У мене є apk останньої версії завдяки Titanium Backup. Але я не можу встановити його, не замінивши поточний (архітектура Android відстійна). Чи можна це зробити? Хаки тощо.
Примітка. Я хочу зберегти поточну версію, яка повинна бути пов'язана з Market, щоб отримувати майбутні оновлення.

Відповіді:


29

Це може бути зроблено, але не просто з причин , eldarerathis згаданого. Вам потрібен apktool . Про те, як ним користуватися, зверніться до цього посібника. І це після підписання apk після того, як ви закінчите.

Потрібно змінити файл AndroidManifest.xml. Знайдіть рядок, який виглядає приблизно так:

manifest package="com.example.app"

і змінити його на щось на кшталт:

"com.example.app.foo"

Після закінчення рекомпіляції потім подайте у відставку. Щоб відновити свої дані, спробуйте наступне за допомогою adb:

adb rm /data/data/com.example.app.foo
adb push /data/data/com.example.app /data/data/com.example.app.foo

Де com.example.appназва упаковки оригіналу та com.example.app.fooмодифікована.

Завжди є невеликий шанс, що програма вийде з ладу, або залежно від способу її створення ви зможете отримувати діалогове вікно кожного разу, коли ви змінюєте екран, що підкаже вам вибрати, який додаток ви хочете запустити, але, безумовно, варто спробувати, якщо ви хочу цього досить погано.

Звичайно, обидва додатки не матимуть однакових налаштувань та даних.


2
Чудово ... Я не думаю, що це буде предметом юридичних питань, оскільки я не збираюся його розповсюджувати / продавати .. Дякую!
Android Quesito

1
Це залежить від вашої країни. В Угорщині законним є зворотний інженер на додаток для навчальних / особистих цілей, але я не знаю про інший світ. Але оскільки ви нічого не поширюєте, ви не потрапите в біду.
RR

16

Ви не можете цього зробити. Кожна програма Android має назву пакета, яка ефективно визначає простір імен Java / Dalvik, який займають його класи. У вас не може бути встановлено два пакети з одним і тим самим іменем, оскільки це створювало б збігаються простори імен, тому він завжди замінює старий, коли ви встановлюєте новий. Єдиний спосіб, з яким ви могли це зробити, це, якби ви змогли отримати джерело програми та змінити всі визначення пакету.


7

Зробіть це за 5 хвилин

Спосіб : Змініть ім'я пакета, щоб Android розпізнавав його як інший додаток.

Ні APKtool, ні adb, не потрібні навички суперкористувача.

Потрібні інструменти

  • ПК з JAVA (Windows, Linux, Mac) (бажано JDK 8)
  • ApkRename

Кроки

  1. Резервне копіювання / Завантажте копію потрібного додатка ( app.APK)
  2. Передача на ПК
  3. На ПК завантажте JAVA та ApkRename
  4. Змініть назву пакета, надавши шлях до файлу APK та нове ім'я пакета до ApkRename
  5. Підпишіть APK за допомогою ApkSign
  6. Перенесіть новий APK на телефон та встановіть його.

ПРИМІТКА. Якщо у вас виникли труднощі з підписанням APK, використовуйте Android APK редактор, наприклад, Advanced permission managerі будь-яке редагування, натисніть зберегти та встановити. Цього разу вони підпишуть додаток.


2

Ви можете спробувати перепакувати програму. Я одного разу встановив якусь відредаговану версію гри, і результат отримав дві гри. Якщо добре пам’ятаєте, назви пакетів не були однаковими.


0

Іноді в виконуваній бібліотеці ( .so) є деякі посилання , і зміна назви пакету (також smali -> class.dex) також не допомагає.

У простих випадках шукайте ApkEditor .


1
Це вдалий початок, але не пояснює, які зміни потрібно внести в ApkEditor. Якщо ви хочете, щоб ваша відповідь була корисною, ви можете відредагувати її, щоб додати трохи більше інформації.
Dan Hulme
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.