Konwertuj apk do rpm

Konwertuj APK na RPM

Spakuj Android APK w RPM do dystrybucji bez konwertowania go na aplikację Linux.

Konwertuj pliki APK online

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

Chcesz przekonwertować APK na RPM?

Daj nam znać. Kolejne konwersje do dodania wybieramy według zainteresowania.

Jak konwertować apk do rpm

Telefon z systemem Linux lub repozytorium oprogramowania opartym na RPM może wymagać dostarczenia pliku APK systemu Android jako pakietu RPM. Tworzy to dystrybuowalny wrapper, a nie natywną aplikację systemu Linux, ponieważ Android i RPM korzystają z różnych środowisk uruchomieniowych i modeli pakietów.

Czym jest format APK

APK to format pakietu aplikacji systemu Android używany przez urządzenia z systemem Android, Android Studio, Gradle i narzędzia do budowania aplikacji Android. Zwykle zawiera skompilowany kod aplikacji w plikach DEX, zasoby, manifest systemu Android, opcjonalne biblioteki natywne oraz dane podpisu systemu Android.

Menedżer pakietów systemu Android instaluje plik APK, gdy jego nazwa pakietu, podpis, wymagania dotyczące Android API oraz ABI urządzenia są zgodne. Plik APK jest oparty na formacie ZIP, ale zmiana jego nazwy, rozpakowanie lub ponowne skompresowanie nie przekształca go w RPM. Jego kod wywołuje API frameworka systemu Android i zwykle działa w środowisku Dalvik lub ART, a nie bezpośrednio w systemie Linux.

Czym jest format RPM

RPM to format pakietu używany przez Fedora, Red Hat Enterprise Linux, openSUSE oraz mobilne systemy Linux oparte na RPM, takie jak Sailfish OS. Pakiet RPM przechowuje pliki wraz z metadanymi pakietu, informacjami o wersji i zależnościach, właścicielu i uprawnieniach, opcjonalnymi skryptami instalacyjnymi oraz często podpisem kryptograficznym. Narzędzia takie jak dnf, rpm i zypper instalują pakiety RPM lub wysyłają na ich temat zapytania.

RPM zapewnia integrację z repozytoriami, obsługę zależności, aktualizacje, usuwanie oraz weryfikację transakcji w systemie Linux. Nie tłumaczy kodu bajtowego systemu Android, uprawnień systemu Android, wywołań frameworka ani natywnych bibliotek Android na ich odpowiedniki w systemie Linux.

Jak spakować plik APK w pakiecie RPM

Użyj narzędzi do budowania RPM, jeśli wymagane jest dostarczenie niezmienionego pliku APK do systemu opartego na RPM. W systemie Fedora zainstaluj narzędzia i utwórz standardową strukturę katalogów do budowania:

sudo dnf install rpm-build rpmdevtools
rpmdev-setuptree

Skopiuj plik example.apk do katalogu ~/rpmbuild/SOURCES/. Utwórz plik ~/rpmbuild/SPECS/example-apk.spec, wpisując prawidłową licencję aplikacji zamiast Proprietary:

Name:           example-apk
Version:        1.0
Release:        1%{?dist}
Summary:        Android APK payload
License:        Proprietary
BuildArch:      noarch
Source0:        example.apk

%description
Delivers an Android APK for a compatible Android runtime.

%install
install -D -m 0644 %{SOURCE0} %{buildroot}%{_datadir}/android-apks/example.apk

%files
%{_datadir}/android-apks/example.apk

BuildArch: noarch jest właściwe, ponieważ ten pakiet RPM zawiera tylko plik; nie opisuje ABI systemu Android używanego przez plik APK. Zbuduj pakiet i sprawdź jego zawartość:

rpmbuild -ba ~/rpmbuild/SPECS/example-apk.spec
rpm -qpl ~/rpmbuild/RPMS/noarch/example-apk-1.0-1*.rpm
rpm -qp --info ~/rpmbuild/RPMS/noarch/example-apk-1.0-1*.rpm

Wynik znajduje się zwykle w katalogu ~/rpmbuild/RPMS/noarch/. Zainstaluj pakiet w docelowym systemie opartym na RPM za pomocą jego menedżera pakietów, na przykład:

sudo dnf install ./example-apk-1.0-1.noarch.rpm

Plik APK nadal wymaga środowiska uruchomieniowego zgodnego z systemem Android. Na przykład w przypadku Waydroid wdrożony plik należy zainstalować osobno:

waydroid app install /usr/share/android-apks/example.apk

Dokładne środowisko uruchomieniowe i polecenie zależą od mobilnej dystrybucji systemu Linux; sama instalacja RPM nie rejestruje pliku APK w systemie Android.

Alternatywne narzędzia do pakowania

W przypadku prostego wrappera plikowego narzędzie fpm może utworzyć pakiet RPM bez pisania pliku spec:

fpm -s dir -t rpm -n example-apk -v 1.0 \
  example.apk=/usr/share/android-apks/example.apk

Do powtarzalnych kompilacji, deklarowania zależności, podpisywania i publikowania w repozytorium używaj narzędzi RPM dystrybucji. Nie istnieje wiarygodna usługa online, która przeprowadza rzeczywistą konwersję APK do natywnego RPM; konwertery internetowe mogą co najwyżej zmienić nazwy, rozpakować lub ponownie spakować pliki. Przesłanie podpisanego lub zastrzeżonego pliku APK do takiej usługi ujawnia również jego zawartość.

Ograniczenia zgodności

Aby utworzyć natywną aplikację systemu Linux, skompiluj oprogramowanie ponownie ze źródeł z użyciem bibliotek systemu Linux i zestawu narzędzi docelowego urządzenia. Opakowanie pliku APK nie może zastąpić wywołań frameworka systemu Android ani przekształcić kodu DEX i uprawnień systemu Android w natywne komponenty systemu Linux.

W miarę możliwości zachowuj niezmienione bajty pliku APK. Ponowne zbudowanie lub zmodyfikowanie archiwum APK może unieważnić podpisy Android APK Signature Scheme v2 lub v3 i uniemożliwić instalację albo aktualizacje. Wrapper RPM ma odrębną tożsamość pakietu i może mieć własny podpis RPM; nie zastępuje on podpisu pliku APK.

Środowisko uruchomieniowe systemu Android musi obsługiwać ABI pliku APK, takie jak arm64-v8a, armeabi-v7a lub x86_64, a także wymagany poziom Android API. Urządzenie z systemem Linux dla architektury x86 może wymagać translacji środowiska uruchomieniowego dla pliku APK przeznaczonego dla ARM, a niektóre funkcje systemu Android mogą pozostawać niedostępne w kontenerze systemu Linux.

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

Porównanie formatu APK z RPM

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

Porównanie formatów plików APK i RPM
Cecha .APK Android Package .RPM RPM Package Archive
Otwarty standard Nie Częściowo otwarty
Kompresja Oba Oba
Typowy rozmiar pliku Średni Średni
Otwiera się w przeglądarce internetowej Nie Nie
Dalsza edycja Nie do bezpośredniej edycji Nie do bezpośredniej edycji
Obsługa metadanych Podstawowy Podstawowy
Czytelny tekstowo Nie Nie
Najlepszy do Osadzanie w aplikacjach Osadzanie w aplikacjach
Wprowadzono 2008 1997
Twórca Google Red Hat, Inc.
Typ MIME application/vnd.android.package-archive application/x-rpm