Czy istnieje sposób na wyodrębnienie i wyświetlenie zawartości pliku .apk?
Czy istnieje sposób na wyodrębnienie i wyświetlenie zawartości pliku .apk?
Odpowiedzi:
W rzeczywistości plik apk jest po prostu archiwum zip, więc możesz spróbować zmienić nazwę pliku theappname.apk.zip
i wyodrębnić go za pomocą dowolnego narzędzia zip (np. 7zip).
androidmanifest.xml
Plików i zasoby zostaną wyodrębnione i mogą być przeglądane podczas gdy kod źródłowy nie jest w opakowaniu - wystarczy skompilowany .dex plik ( „Dalvik Executable”)
Podczas rozpakowywania ujawni się zasoby, AndroidManifest.xml
zostaną one zakodowane. apktool
może - między innymi - również dekodować ten plik.
Aby zdekodować aplikację App.apk
do folderu App
, uruchom
apktool decode App.apk App
apktool
nie jest uwzględniony w oficjalnym pakiecie SDK systemu Android, ale jest dostępny w większości repozytoriów pakietów.
Jest też zzos . (Pełne ujawnienie: napisałem to). Dekompiluje tylko rzeczywiste zasoby, a nie część dex ( baksmali , którego nie napisałem, świetnie radzi sobie z tą częścią).
Zzos jest znacznie mniej znany niż apktool, ale jest kilka plików APK, które są przez niego lepiej obsługiwane (i odwrotnie - więcej o tym później). Przeważnie pliki APK zawierające niestandardowe typy zasobów (nie modyfikatory) nie były obsługiwane przez apktool podczas ostatniego sprawdzania i są obsługiwane przez zzos. Istnieją również przypadki ucieczki, że zzos radzi sobie lepiej.
Z drugiej strony, zzos (obecna wersja) wymaga do zainstalowania kilku narzędzi pomocniczych. Jest napisany w perlu (w przeciwieństwie do APKTool, który jest napisany w Javie) i używa aapt do faktycznej dekompilacji. Nie dekompiluje również zasobów atrybutów (co robi APKTool).
Znaczenie nazwy to „aapt”, kompilator zasobów Androida, przesunięty o jedną literę w dół.
4 sugerowane sposoby otwierania plików APK:
1. otwórz plik apk przez Android Studio (dla zdjęć, kodu java i rozmiaru analizy) w najlepszy sposób
2. otwarte przez aplikacje winRar, 7zip itp (tylko po to, aby zobaczyć zdjęcia i ...)
3. użyj strony internetowej javadecompilers (dla zdjęć i kodu java)
4. użyj narzędzi APK (dla zdjęć i kodu java)
unzip my.apk
To załatwia sprawę z wiersza poleceń Linuksa, ponieważ format APK to tylko plik ZIP na górze.
Istnieje internetowy dekompilator dla aplikacji na Androida
http://www.decompileandroid.com/
Prześlij plik APK z komputera lokalnego
Poczekaj chwilę
pobierz kod źródłowy w formacie zip.
Rozpakuj go, możesz poprawnie wyświetlić wszystkie zasoby, ale wszystkie pliki java nie są poprawnie zdekompilowane.
Aby uzyskać szczegółowe informacje, odwiedź tę odpowiedź
W zależności od powodu, dla którego chcesz wyodrębnić pakiet APK, może wystarczyć narzędzie APK Analyzer. Pokazuje katalogi i rozmiary plików. Pokazuje również liczby metod pogrupowane według pakietu, do których można przejść.
APK Analyzer jest wbudowany w Android Studio. Możesz uzyskać do niego dostęp z górnego menu, Build -> Analyze APK.
Możesz także skorzystać z Jadx - https://github.com/skylot/jadx . Użyłem wszystkich narzędzi wymienionych na tej stronie i stwierdziłem, że Jadx działa najlepiej. Plik manifestu i inne pliki klas są konwertowane do formatu czytelnego w miarę możliwości przez to narzędzie.
PS - http://www.javadecompilers.com/apk również używa dekompilatora jadx do wykonania tej samej pracy online. Prostsze, jeśli chcesz przywrócić z archiwum pojedynczy plik APK.
Twoje zdrowie!
Możesz również zobaczyć zawartość pliku APK na samym urządzeniu z Androidem, co bardzo pomaga w debugowaniu.
Wszystkie pliki, w tym manifest aplikacji, można wyświetlać, a także udostępniać za pomocą poczty e-mail, chmury itp., Bez konieczności rootowania. Aplikacja jest dostępna pod adresem:
https://play.google.com/store/apps/details?id=com.dasmic.android.apkpeek
Zastrzeżenie: jestem autorem tej aplikacji.
APK Scanner może wyświetlić informacje o pliku APK na PC.
można również pobrać plik apk z urządzenia z systemem Android.
I może być linkami do innych narzędzi. (JADX-GUI, JD-GUI ...)