Jak zachować zainstalowane dwie wersje aplikacji?

43

Android Market właśnie zaktualizował aplikację na moim urządzeniu. Podobała mi się aktualizacja, ale całkowicie różni się od poprzedniej wersji, która również była moją ulubioną. Chcę też zachować ostatnią wersję. Mam apk ostatniej wersji dzięki Titanium Backup. Ale nie mogę go zainstalować bez zastąpienia obecnego (architektura Androida jest do bani). Czy jest na to jakiś sposób? Hacki itp.
Uwaga: Chcę zachować aktualną wersję, która musi być połączona z usługą Market, aby otrzymywać przyszłe aktualizacje.

Android Quesito
źródło

Odpowiedzi:

29

Można to zrobić, ale nie jest to proste z powodów, o których wspominali eldarerathis . Potrzebujesz apktool . Zapoznaj się z tym przewodnikiem, jak go używać. A to po podpisaniu apk po zakończeniu.

Musisz zmodyfikować plik AndroidManifest.xml. Znajdź linię, która wygląda następująco:

manifest package="com.example.app"

i zmień to na coś takiego:

"com.example.app.foo"

Po zakończeniu ponownie skompiluj, a następnie zrezygnuj. Aby przywrócić dane, spróbuj wykonać następujące czynności za pośrednictwem adb:

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

Gdzie com.example.appjest nazwa pakietu oryginału i com.example.app.foojest zmodyfikowany.

Zawsze istnieje niewielka szansa, że ​​aplikacja się zepsuje, lub w zależności od struktury aplikacji możesz wyświetlić okno dialogowe za każdym razem, gdy zmieniasz ekran, z prośbą o wybranie aplikacji, którą chcesz uruchomić, ale zdecydowanie warto spróbować, jeśli bardzo tego chcę.

Oczywiście obie aplikacje nie będą miały tych samych ustawień i danych.

RR
źródło
2
Świetnie ... Nie sądzę, żeby podlegało to kwestiom prawnym, ponieważ nie zamierzam go dystrybuować / sprzedawać. Dzięki!
Android Quesito,
1
To zależy od twojego kraju. Na Węgrzech legalna jest inżynieria wsteczna aplikacji do celów edukacyjnych / osobistych, ale nie wiem o reszcie świata. Ale ponieważ nie dystrybuujesz niczego, nie będziesz miał kłopotów.
RR
16

Nie możesz tego zrobić. Każda aplikacja na Androida ma nazwę pakietu, która skutecznie definiuje przestrzeń nazw Java / Dalvik, którą zajmują jej klasy. Nie można zainstalować dwóch pakietów o tej samej nazwie, ponieważ tworzyłoby to nakładające się przestrzenie nazw, dlatego zawsze zastępuje stary podczas instalowania nowego. Jedynym sposobem, w jaki można to zrobić, jest uzyskanie źródła aplikacji i zmiana wszystkich definicji pakietów.

eldarerathis
źródło
7

Zrób to za 5 minut

Metoda : Zmień nazwę pakietu, aby Android rozpoznał go jako inną aplikację.

Bez APKtool, bez adb, bez umiejętności superużytkownika.

Wymagane narzędzia

  • Komputer PC z JAVA (Windows, Linux, Mac) (preferowany JDK 8)
  • ApkRename

Kroki

  1. Utwórz kopię zapasową / pobierz kopię żądanej aplikacji ( app.APK)
  2. Przenieś na komputer
  3. Na PC pobierz JAVA i ApkRename
  4. Zmień nazwę pakietu, podając ścieżkę do pliku APK i nazwę nowego pakietu na ApkRename
  5. Podpisz APK za pomocą ApkSign
  6. Przenieś nowy pakiet APK na telefon i zainstaluj go.

UWAGA: W przypadku jakichkolwiek trudności z podpisaniem APK, użyj aplikacji Advanced permission managerdo edytowania APK na Androida, jak i dokonaj dowolnej edycji, naciśnij Zapisz i zainstaluj. W tej chwili podpiszą aplikację.

Totti
źródło
2

Możesz spróbować ponownie spakować aplikację. Kiedyś zainstalowałem edytowaną wersję gry, czego rezultatem były dwie gry. Jeśli dobrze pamiętasz, nazwy pakietów nie były takie same.

Andrius
źródło
0

Czasami istnieją pewne odwołania w wykonywalnej bibliotece ( .so), a zmiana nazwy pakietu (także smali -> classes.dex) też nie pomaga.

W prostych przypadkach poszukaj ApkEditor .

użytkownik39670
źródło
1
To dobry początek, ale nie wyjaśnia, jakie zmiany należy wprowadzić w ApkEditor. Jeśli chcesz, aby twoja odpowiedź była pomocna, możesz ją edytować, aby dodać nieco więcej informacji.
Dan Hulme,