Replicant est une distribution Android entièrement open-source n'étant pas équipe de logiciel privatif ou d'applications liée directement à Google. C'est un système d'exploitation mobile à base de logiciel libre mettant l'accent sur la liberté et la vie privée / sécurité
Une fois les installations faites, de nombreuses APK sont disponible sur le site APKMirror
Ressources documentaires :
Téléchargeons la dernière version système et le recovery respectif de Replicant : https://redmine.replicant.us/projects/replicant/wiki/ReplicantImages
Puis vérifier la correspondance de la ROM grâce au checksum :
sha256sum recovery-i9100.img sha256sum replicant-6.0-i9100.zip
On aura besoin de ces paquets par la suite :
apt-get install heimdall-flash android-tools-adb
Commençons par stopper totalement le smartphone puis appuyer sur les touches :
Volume bas + Menu + Power
Puis sélectionner le volume haut pour accepter de télécharger des données. Depuis le pc on peut faire :
heimdall flash --KERNEL recovery-i9100.img
Une fois le terminée, il va redémarrer en mode recovery. Il faudra alors suivre ces étapes :
Depuis le pc on téléversera la ROM :
adb sideload replicant-6.0-i9100.zip
Terminons par supprimer toutes les informations concernant le mode usine :
Le 1er démarrage va être lent car il paramétrera les applications de bases. Cela devrait prendre moins de 10 minutes.
Notons que la procédure est la même pour son upgrade
Les étapes qui vont suivre sont pas plus compliqué que précédemment, il suffit de télécharger une suite de fichiers. Créons d'abord un dossier qui les regroupera :
mkdir firmware cd firmware for i in bcmdhd_{apsta,sta,p2p}.bin nvram_net.txt; do wget 'https://raw.githubusercontent.com/TheMuppets/proprietary_vendor_samsung/cm-14.1/i9100/proprietary/system/etc/wifi/'$i; done cd ../ wget https://redmine.replicant.us/attachments/download/1484/dhd.ko
Il faut pas la suite s'assurer que le téléphone (en état de marche) puisse communiquer avec le pc. On se rend dans les paramètres en suivant ces menus :
Il reste plus qu'a téléverser les fichiers avec les bon droits puis de faire un reboot pour prendre en compte les changements (se mettre en tant que root sur sa machine locale ) :
adb root adb remount adb push dhd.ko /system/lib/modules/dhd.ko adb shell mkdir /system/vendor/firmware adb shell chown root:shell /system/vendor/firmware adb shell chmod g-w,o-w /system/vendor/firmware find firmware/ -type f -exec adb push {} /system/vendor/firmware \; adb reboot
Activez le Wifi et vous devez maintenant être dans la capacité de voir les points d'accès environnant. En cas de soucis, plus de détails sont données à cet article : https://manurevah.com/blah/en/p/Replicant-6-Enabling-Wifi-on-Galaxy-2-i9100
Si vous rencontrez ce type d'erreur :
ADB server didn't ACK* failed to start daemon *
Relancer le daemon ainsi :
adb kill-server adb start-server
Ci dessous, ce sont juste des prises de notes car à ce jour, c'est très mal supporté.
mkdir gps cd gps for i in {libakm,libsec-ril,libsecril-client}.so ; do wget 'https://raw.githubusercontent.com/TheMuppets/proprietary_vendor_samsung/cm-14.1/i9100/proprietary/system/lib/'$i; done cd ../ wget https://github.com/TheMuppets/proprietary_vendor_samsung/blob/cm-14.1/i9100/proprietary/system/lib/hw/gps.exynos4.so
adb push gps.exynos4.so /system/lib/hw/ find gps/ -type f -exec adb push {} /system/lib \;
Sources :
Gardons en tête que les codes sources sont disponible ici : https://git.replicant.us/replicant/device_samsung_i9100/
Les prochaines étapes vont requières ~70Go d'espace disque et plusieurs heures d'installations.
C'est la première étape :
dpkg --add-architecture i386 ; apt-get update
Il faudra vérifier dans les sources.list si l'option “deb-src” est bien active pour ensuite exécuter les commandes suivantes :
apt-get build-dep gcc binutils llvm-defaults apt-get install bash gcc-arm-none-eabi cmake python-dev swig ant bc proguard maven-debian-helper libemma-java libasm4-java libguava-java libnb-platform18-java libnb-org-openide-util-java libandroidsdk-ddmlib-java libmaven-source-plugin-java libfreemarker-java libmaven-javadoc-plugin-java ca-cacert curl gawk libgmp3-dev libmpfr-dev libmpc-dev git-core gperf libncurses-dev squashfs-tools pngcrush zip zlib1g-dev lzma libc6-dev-i386 g++-multilib lib32z1-dev lib32readline-dev lib32ncurses5-dev zlib1g-dev:i386 xsltproc python-mako schedtool gradle dirmngr libandroidsdk-sdklib-java eclipse-jdt libgradle-android-plugin-java android-sdk-build-tools android-sdk-platform-23 aapt lzop rsync
Installons les outils de Google :
mkdir ~/.bin cd ~/.bin git clone https://android.googlesource.com/tools/repo chmod a+x repo ln -s ~/.bin/repo/repo /usr/local/bin/repo
Passons à la partie concernant le projet Replicant :
mkdir ~/replicant-6.0 cd ~/replicant-6.0 repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-6.0 repo sync
Préconstruire les applications :
gpg --recv-key 37D2C98789D8311948394E3E41E7044E1DBA2E89 vendor/replicant/get-prebuilts
Ces deux commandes sont à relancer à chaque fois qu'on lance un “repo sync”
Nous aurons besoin de la toolchain (La compilation peut prendre plusieurs heures) :
cd ~/replicant-6.0 ./vendor/replicant/build-toolchain
Puis enfin compiler l'image Replicant (Idem, la patience est grandement requise) :
./vendor/replicant/build.sh i9100
Des binaires se trouverons dans out/host/linux-x86/bin/ et out/dist/i9100/
adb start-server adb kill-server
adb devices
adb shell ls /sdcard/
adb reboot recovery adb reboot bootloader
adb wait-for-device
Ajouter dans le bashrc :
screenStream() { while true do adb exec-out screenrecord --output-format=h264 --size 1024x768 - done }
Puis lancer sa diffusion :
screenStream |ffplay -framerate 60 -probesize 32 -framedrop -bufsize 16M -sync video -