Aller au contenu

Convertir APK en RPM

Empaqueter un APK Android dans un RPM pour sa distribution sans le convertir en application Linux.

Convertir des fichiers APK en ligne

Nous n’avons pas encore de convertisseur en ligne dédié pour APK vers RPM, mais vous pouvez convertir des fichiers APK en ligne vers ces formats :

Comment convertir apk en fichier rpm

Un téléphone Linux ou un dépôt de logiciels basé sur RPM peut nécessiter la fourniture d’un Android APK sous forme de package RPM. Cela crée une enveloppe distribuable, et non une application Linux native, car Android et RPM utilisent des runtimes et des modèles de packages différents.

Qu’est-ce que le format APK ?

APK est le format de package d’application Android utilisé par les appareils Android, Android Studio, Gradle et les outils de build Android. Il contient normalement du code d’application compilé dans des fichiers DEX, des ressources, un manifeste Android, des bibliothèques natives facultatives et des données de signature Android.

Le gestionnaire de packages d’Android installe un APK lorsque son nom de package, sa signature, ses exigences d’API Android et l’ABI de l’appareil sont compatibles. Un APK est basé sur ZIP, mais le renommer, l’extraire ou le recompresser ne le transforme pas en RPM. Son code appelle les API du framework Android et s’exécute normalement sur Dalvik ou ART, et non directement sur Linux.

Qu’est-ce que le format RPM ?

RPM est un format de package utilisé par Fedora, Red Hat Enterprise Linux, openSUSE et les systèmes Linux mobiles basés sur RPM, tels que Sailfish OS. Un RPM stocke des fichiers avec les métadonnées du package, les informations de version et de dépendances, le propriétaire et les permissions, des scripts d’installation facultatifs et souvent une signature cryptographique. Des outils tels que dnf, rpm et zypper installent ou interrogent les packages RPM.

RPM fournit l’intégration aux dépôts, la gestion des dépendances, les mises à niveau, la suppression et la vérification des transactions pour le système Linux. Il ne traduit pas le bytecode Android, les permissions Android, les appels au framework ou les bibliothèques natives Android en équivalents Linux.

Comment empaqueter un APK dans un RPM

Utilisez les outils de build RPM lorsque l’objectif est de fournir l’APK inchangé à un système basé sur RPM. Sur Fedora, installez les outils et créez l’arborescence de build standard :

sudo dnf install rpm-build rpmdevtools
rpmdev-setuptree

Copiez example.apk dans ~/rpmbuild/SOURCES/. Créez ~/rpmbuild/SPECS/example-apk.spec en remplaçant Proprietary par une licence d’application valide :

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 est approprié, car ce RPM contient uniquement un fichier ; il ne décrit pas l’ABI Android de l’APK. Construisez et inspectez le package :

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

La sortie se trouve normalement sous ~/rpmbuild/RPMS/noarch/. Installez-le sur le système cible basé sur RPM avec son gestionnaire de packages, par exemple :

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

L’APK nécessite toujours un runtime compatible avec Android. Avec Waydroid, par exemple, installez séparément le fichier déployé :

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

Le runtime et la commande exacts dépendent de la distribution Linux mobile ; une installation RPM seule n’enregistre pas l’APK auprès d’Android.

Outils d’empaquetage alternatifs

Pour une simple enveloppe de fichier, fpm peut produire un RPM sans écrire de fichier spec :

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

Utilisez les outils RPM de la distribution pour obtenir des builds reproductibles, déclarer les dépendances, effectuer la signature et publier dans un dépôt. Il n’existe aucun service en ligne réputé qui réalise une véritable conversion d’APK en RPM natif ; les convertisseurs web peuvent tout au plus renommer, extraire ou réempaqueter les fichiers. Le téléchargement d’un APK signé ou propriétaire vers un tel service expose également son contenu.

Limites de compatibilité

Pour créer une application Linux native, reconstruisez le logiciel à partir du code source avec les bibliothèques Linux et la toolkit de l’appareil cible. L’encapsulation d’un APK ne peut pas remplacer les appels au framework Android ni convertir le code DEX et les permissions Android en composants Linux natifs.

Conservez autant que possible les octets de l’APK inchangés. La reconstruction ou la modification de l’archive APK peut invalider les signatures Android APK Signature Scheme v2 ou v3 et empêcher l’installation ou les mises à jour. Une enveloppe RPM possède une identité de package distincte et peut avoir sa propre signature RPM ; elle ne remplace pas la signature de l’APK.

Le runtime Android doit prendre en charge l’ABI de l’APK, telle que arm64-v8a, armeabi-v7a ou x86_64, ainsi que son niveau d’API Android requis. Un appareil Linux x86 peut nécessiter une traduction au niveau du runtime pour un APK ARM, tandis que certaines fonctionnalités Android restent indisponibles dans un conteneur Linux.

En termes simples, il est impossible de convertir directement APK en RPM.
Ainsi, il n'existe pas de convertisseur dit apk en rpm ni de convertisseur en ligne gratuit. Convertisseur apk en .rpm à trouver.

Comparaison du format APK vs RPM

Comparaison entre les formats APK et RPM sur les propriétés les plus importantes pour cette conversion.

Comparaison des formats de fichier APK et RPM
Propriété .APK Android Package .RPM RPM Package Archive
Norme ouverte Non Partiellement ouvert
Compression Les deux Les deux
Taille de fichier typique Moyen Moyen
S’ouvre dans un navigateur web Non Non
Modification ultérieure Non modifiable directement Non modifiable directement
Support des métadonnées Basique Basique
Lisible en texte brut Non Non
Idéal pour Intégration dans des applications Intégration dans des applications
Date d’introduction 2008 1997
Développeur Google Red Hat, Inc.
Type MIME application/vnd.android.package-archive application/x-rpm

Les informations sur les extensions et les types de fichiers sont fournies par File-Extensions.org

Déjà téléchargé

Ce fichier a déjà été téléchargé. Pour protéger votre vie privée, nous l’avons supprimé de notre serveur juste après le téléchargement, il ne peut donc pas être téléchargé à nouveau. Pour l’obtenir encore une fois, convertissez de nouveau le fichier.