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.
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:
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.
Ś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.
Zmień nazwę pakietu, podając ścieżkę do pliku APK i nazwę nowego pakietu na ApkRename
Podpisz APK za pomocą ApkSign
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ę.
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.
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.
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.
źródło
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
Kroki
app.APK
)UWAGA: W przypadku jakichkolwiek trudności z podpisaniem APK, użyj aplikacji
Advanced permission manager
do edytowania APK na Androida, jak i dokonaj dowolnej edycji, naciśnij Zapisz i zainstaluj. W tej chwili podpiszą aplikację.źródło
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.
źródło
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 .
źródło