Konwertuj apk do jad

Konwertuj APK na JAD

Wyjaśnia, dlaczego pliki APK nie mogą stać się działającymi pakietami JAD/MIDlet oraz jak utworzyć plik JAD z prawidłowego pliku JAR.

Konwertuj pliki APK online

Nie mamy jeszcze dedykowanego konwertera online dla APK na JAD, ale pliki APK możesz przekonwertować online na te formaty:

Jak konwertować apk do jad

Starszy telefon lub emulator Java ME może wymagać deskryptora JAD, gdy dostępna aplikacja jest plikiem APK systemu Android. Ponieważ oba pakiety są przeznaczone dla różnych środowisk uruchomieniowych, praktycznym rozwiązaniem jest uzyskanie oryginalnej pary Java ME JAR/JAD lub dedykowanego portu, a nie zmiana nazwy pliku APK.

Czym jest format APK

APK to format pakietu instalacyjnego aplikacji systemu Android, tworzony przez Android Studio, Gradle oraz narzędzia do pakowania Android. Dystrybucje Android mogą udostępniać pojedynczy plik APK lub wiele dzielonych plików APK; kompilacje deweloperskie, kopie zapasowe urządzeń i repozytoria zewnętrzne często zawierają pliki APK.

APK jest kontenerem opartym na ZIP, który zwykle zawiera skompilowany lub binarny plik AndroidManifest.xml, kod bajtowy Dalvik/ART w pliku classes.dex, zasoby, biblioteki natywne oraz informacje o podpisie. Android używa manifestu, kodu DEX, zasobów i API frameworka do instalowania oraz uruchamiania aplikacji.

Czym jest format JAD

JAD to deskryptor aplikacji Java w formacie zwykłego tekstu, używany przez telefony i emulatory Java ME. Opisuje oddzielny plik JAR aplikacji Java ME i zwykle zawiera elementy MIDlet-Name, MIDlet-Version, MIDlet-Vendor, MIDlet-1, MicroEdition-Configuration, MicroEdition-Profile, MIDlet-Jar-URL oraz MIDlet-Jar-Size.

Plik JAR zawiera pliki klas Java ME i zasoby; plik JAD dostarcza metadane instalacyjne oraz wskazuje ten plik JAR. JAD nie jest aplikacją wykonywalną i nie może działać bez zgodnego kodu Java ME.

Dlaczego bezpośrednia konwersja nie działa

Nie istnieje rzeczywista konwersja APK do JAD. Android używa kodu bajtowego DEX, API frameworka Android, komponentów aplikacji Android oraz środowiska uruchomieniowego Dalvik/ART. Java ME używa plików klas Java, API CLDC/MIDP oraz cyklu życia MIDlet. Deskryptor nie może przetłumaczyć kodu bajtowego, układów Android, uprawnień, bibliotek natywnych ani zależności frameworka między tymi platformami.

Zmiana nazwy app.apk na app.jad, wypakowanie zawartości APK do pliku JAR lub skopiowanie wartości manifestu Android do pliku JAD tworzy nieprawidłowy albo niefunkcjonalny pakiet Java ME. Żaden renomowany konwerter online nie może przekształcić aplikacji Android w działający MIDlet; usługi, które twierdzą, że to robią, zazwyczaj jedynie zmieniają nazwy, wypakowują lub przepakowują pliki bez tłumaczenia programu.

Jak utworzyć JAD z istniejącego pliku JAR Java ME

Ta procedura ma zastosowanie wyłącznie wtedy, gdy masz już prawidłowy plik JAR Java ME, w tym taki, który przypadkowo znajduje się w pakiecie APK. Dowolny plik JAR znajdujący się w APK nie jest automatycznie aplikacją Java ME; sprawdź obecność klas MIDlet oraz atrybutów manifestu Java ME.

  1. Przeanalizuj APK za pomocą 7-Zip lub narzędzi platformy Android. W systemie z programem unzip wyświetl jego zawartość za pomocą unzip -l app.apk i wypakuj ją za pomocą unzip app.apk -d app_unpacked. Wypakowanie nie konwertuje kodu Android.
  2. Użyj Apktool, gdy potrzebujesz przeanalizować zasoby Android, manifest lub zdezasemblowany kod DEX: apktool d app.apk -o app_decoded. Apktool dekoduje pliki Android i tworzy kod smali, ale nie tworzy pliku JAR ani JAD Java ME.
  3. Jeśli dostępny jest odpowiedni plik JAR Java ME, użyj lokalnego narzędzia JAR-to-JAD, takiego jak JADMaker, albo utwórz deskryptor ręcznie w edytorze zwykłego tekstu. Narzędzia Java ME SDK lub Wireless Toolkit do pakowania również mogą generować deskryptory w ramach kompilacji Java ME.
  4. Aby utworzyć plik ręcznie, zapisz plik tekstowy obok pliku JAR, używając tej samej nazwy bazowej, na przykład example.jad obok example.jar:
MIDlet-Name: Example
MIDlet-Version: 1.0
MIDlet-Vendor: Example Vendor
MIDlet-1: Example,,com.example.ExampleMIDlet
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
MIDlet-Jar-URL: example.jar
MIDlet-Jar-Size: 123456

Zastąp przykładowe wartości metadanymi obsługiwanymi przez plik JAR. Klasa w elemencie MIDlet-1 musi istnieć w pliku JAR i implementować wymagany punkt wejścia MIDlet. MIDlet-Jar-Size musi oznaczać dokładny rozmiar pliku JAR w bajtach, bez separatorów. Adres URL może być lokalną nazwą pliku używaną przy instalacji z pliku albo adresem URL serwera używanym podczas instalacji sieciowej.

Internetowy generator JAR-to-JAD jest dopuszczalny wyłącznie w przypadku niewrażliwego, już prawidłowego pliku JAR Java ME; nie może on konwertować pliku APK. Generator desktopowy jest bezpieczniejszy w przypadku plików podpisanych lub zastrzeżonych, ponieważ przesłanie archiwum ujawnia jego zawartość. Przed przeniesieniem obu plików na telefon lub emulator sprawdź wygenerowane pola oraz rozmiar pliku JAR.

Ograniczenia zgodności

APK systemu Android może wymagać określonych wersji frameworka Android, uprawnień, usług Google, bibliotek natywnych, funkcji ekranu dotykowego lub sprzętu, który nie ma odpowiednika w Java ME. Nawet dekompilacja kodu źródłowego nie utworzyłaby przenośnego MIDletu bez gruntownego przepisania go z użyciem API CLDC/MIDP oraz wykonania nowej kompilacji Java ME.

Na potrzeby instalacji lub archiwizacji Android zachowaj oryginalny podpisany plik APK albo wszystkie wymagane dzielone pliki APK. W przypadku urządzenia Java ME uzyskaj oryginalną, zgodną wersję JAR/JAD lub oddzielnie opracowany port Java ME; sam wygenerowany deskryptor nie zapewni zgodności aplikacji Android.

Krótko mówiąc, nie da się bezpośrednio przekonwertować APK na JAD.
Dlatego nie istnieje tak zwany konwerter apk na jad ani darmowe narzędzie online do konwersji .apk na .jad.

Porównanie formatu APK z JAD

Jak formaty APK i JAD wypadają w porównaniu pod względem najważniejszych cech dla tej konwersji.

Porównanie formatów plików APK i JAD
Cecha .APK Android Package .JAD Java Application Descriptor
Otwarty standard Nie Nie
Kompresja Oba Bez kompresji
Typowy rozmiar pliku Średni Bardzo mały
Otwiera się w przeglądarce internetowej Nie Nie
Dalsza edycja Nie do bezpośredniej edycji Łatwy
Obsługa metadanych Podstawowy Podstawowy
Czytelny tekstowo Nie Tak
Najlepszy do Osadzanie w aplikacjach Osadzanie w aplikacjach
Wprowadzono 2008 2000
Twórca Google Sun Microsystems
Typ MIME application/vnd.android.package-archive —