Création : Debian 9.5 - Android 7.1 - LineageOS 15.1 (non officiel) - Heimdall 1.4.2 - TWRP_3.2.3-0
Ce document décrit les différentes étapes d'installation de la ROM LineageOs sur une Tablette Samsung S2 - 9,5" - VE à partir de la rom d'origine. Elle comprend les étapes suivantes :
1 - Préparation
En mode utilisateur, sauvegarde préliminaire des données utilisateurs et des applications utilisateurs (apk seulement)
Passage du téléphone en mode Développeur
Installation de adb
Installation de Heimdall (utilisé pour le flashage du recovery TWRP)
2 - Installation de TWRP et sauvegarde du système orginal
3 - Installation de LineageOS15 et premier redémarrage
4 - Installation de MicroG (pour se substituer aux applications google)
5 - Réinstallation des applications
6 - Installation LineageOS16 et mises à jour
Références :
Sommaire
Lors de l'installation de la nouvelle ROM toutes les données et applications présentes sur le périphérique et sur la carte SD externe seront effacées. Pour pouvoir les réinstaller rapidement, une fois la nouvelle ROM installée, faire un backup de ce que l'on souhaite transférer
Les copies entre le périphérique et le pc peuvent être effectuées au choix
en graphique, en utilisant le protocole mtp et l'intégration dans l'explorateur de fichier
en ligne de commande, en utilisant le protocole adb
Sauvegarde des données de la sdcard de la tablette
$ adb pull /storage/emulated/0 backup_data_tablet
Sauvegarde des données de la sdcard externe
$ adb pull /storage/4A31-BEAE/ backup_data_sdcard
Installer l'application SMS Backup & Restore (gratuite, opensource, avec publicités)
Il est possible de supprimer les publicités en cochant Supprimer les publicités dans le menu Paramètres >> Réglages
Serveur SMTP : smtp.laposte.net
Port : 465
Sécurité : SSL/TLS
Nécessite authentification
Nom d'utilisateur : xxxxxx
Mot de passe : xxxxxx
Adresse e-mail de l'expéditeur
Adresse e-mail du destinataire
Objet et Corps
Lancer la sauvegarde
Note : il est possible de programmes des sauvegardes périodiques
Installer l'application MCBackup (gratuite, publicités)
Utiliser la fonction exporter généralement disponible avec l'agenda
A défaut, installer en parallèle un autre agenda, par exemple Simple Calendar (com.simplemobiletools.calendar)
Dans les Paramètres de Simple Calendar, activer la Synchronisation Caldav et sélectionner les agendas à synchroniser
Puis sélectionner dans le menu Paramètre Exporter des évènements vers un fichier et sélectionner le répertoire de sauvegare
Avec un explorateur, sélectionner le fichier et le partager par email
Installer l'application Sauvegarder & Restaurer des applications (gratuite avec publicités).
Sélectionner les applications à sauvegarder et lancer la sauvegarde
Sauvegarder les applications sur le PC et remplacer les espaces par des tirets bas dans les noms des applications
$ adb pull /storage/emulated/0/AppBackup AppBackup
$ cd AppBackup
$ rename 's/ /_/g' *.apk
Vérifier si le firmware est à jour et le cas échéant installer la dernière version :
Menu Paramètres >> Mise à jour logicielle >> Téléchargement manuel des MAJ
Menu Paramètres >> A propos de la tablette >> Version Android 7.0
Installer l'application DevCheck (gratuite sans publicités) et noter depuis l'onglet Système
Le nom commercial Galaxy Tab S2
Le nom du modèle : SM-T819
Le nom du produit : gts210veltexx
Le nom de l'appareil : gts210velte
Le code produit SM-T819NZKEXEO
Le
Taper *#1234# et relever les numéros de version AP,CP,CSC
AP ou PDA = T819XXU2BRF4 - version de build du firmware
CP ou bande de base = T819XXU1BRD1 - version modem
CSC = T819XEO2BRG1 - Consumer Software Customization = version géographique, fournisseurs GSM
Note : Le type de modem est indiqué par XX = Europe dans AP et CP, la version géographique est indiqué par XEO = Pologne. Le code de la France est XEF.
Passer la tablette en mode développeur, dans le menu A propos de la tablette > Informations sur le logiciel
Taper 7 fois sur le Numéro de version
Le menu Options de développement apparaît
Autoriser le déverrouillage OEM : Dans le menu Options de développement >
Déverrouillage OEM : Activer Autorisez le déverrouillage OEM - Le code PIN est demandé
Arrêter et déconnecter l'appareil
Vérifier l'accès au mode Download (samsung odin) et noter les infos
Presser simultanèment les touches : Home + Vol down + Start
ODIN MODE (HIGH SPEED
PRODUCT NAME : SM-T819
CURRENT BINARY: Samsung Official
FAP LOCK: OFF
WARRANTY VOID: 0x0
QUALCOMM SECUREBOOT : ENABLZ (CSB)
AP SWREV: S1, T1, H1,A1,AÉ,P1
SECURE DOWNLOAD: ENABLE
Pour sortir du mode Download et redémarrer
Presser simultanèment et maintenir environ 5 secondes les touches : Home + Vol up + Vol down + Start
Presser simulanèment les touches : Home + Vol up + Start
Lorsque l'écran "Installing system update" s'affiche
appuyer sur la touche Vol up
et attendre que le menu recovery s'affiche
Android Recovery
samsung/gts210veltexx/gts210velte
7.0/NRD90M/T819XXU2BRE1
----------------------------------------
Reboot system now
Reboot to bootloader
Apply update from ADB
Apply update from SD card
WIpe data/factory reset
Wipe cache partition
Mount /system
View recovery log
Run graphics test
Power off
Pour sortir du mode Recovery :
Presser simultanèment et maintenir environ 5 secondes les touches : Home + Vol up + Vol down + Start
Relier la tablette à un PC via, de préférence, le câble Samsung d'origine et un port USB2
$ adb version
Android Debug Bridge version 1.0.36
Revision 1:7.0.0+r33-1
Vérifier la connexion, sur la tablette, autoriser la connexion au PC dont l'empreinte est fournie
$ adb shell
gts210velte:/ $
Noter le nom de code de la tablette : gts210velte
La version 1.4.1 ne semble pas fonctionner. Dans ce qui suit on utilise la version 1.4.2 compilée à partir des sources.
$ heimdall version
v1.4.2
Démarrer le périphérique en mode download, passer l'écran d'avertissement
Le connecter au PC via de préférence un port USB2 (et non USB3)
Vérifier la détection du périphérique
$ heimdall detect
Device detected
Tester l'interface, cette étape doit impérativement
Ne pas afficher de message d'erreur
Afficher la table de partition
$ heimdall print-pit
Heimdall v1.4.2
.....
Downloading device's PIT file...
PIT file download successful.
Entry Count: 43
Unknown 1: 1598902083
Unknown 2: 844251476
Unknown 3: 21325
Unknown 4: 14413
Unknown 5: 13625
Unknown 6: 50
Unknown 7: 0
Unknown 8: 0
.....
Ending session...
Rebooting device...
Releasing device interface...
En mode download,
$ heimdall print-pit --no-reboot > pit_rom_stock.txt
Déconnecter et reconnecter la tablette puis sauvegarder la table de partition au format pit
$ heimdall download-pit --resume --output pit_rom_stock.pit
Sur la page TWRP gts210vlte , sélectionner la dernière version de TWRP au format .img et depuis la page correspondante, télécharger TWRP et la signature du fichier TWRP
Vérifier le téléchargement (la somme de contrôle MD5 est disponible en haut de la page du téléchargement)
$ md5sum twrp-3.2.3-0-gts210velte.img
b9ef5da993070c83a7d9c66b14d9873a twrp-3.2.3-0-gts210velte.img
Importer la clé publique de TeamWin disponible sur la page précédente
$ gpg --import public.asc
gpg: key 1D8597D7891A43DF: public key "TeamWin <admin@teamw.in>" imported
gpg: Total number processed: 1
gpg: imported: 1
Vérifier la "non-repudation" :
$ gpg --verify twrp-3.2.3-0-gts210velte.img.asc twrp-3.2.3-0-gts210velte.img
gpg: Signature made mar. 07 août 2018 04:26:52 CEST
gpg: using RSA key 95707D42307C9D41D09BF7091D8597D7891A43DF
gpg: Good signature from "TeamWin <admin@teamw.in>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 9570 7D42 307C 9D41 D09B F709 1D85 97D7 891A 43DF
Connecter le câble usb au PC dans un port USB2
Arrêter et déconnecter la tablette
Démarrer le mode download
Confirmer le passage au mode download en pressant Vol up
Connecter le cable usb à la tablette et vérifier la connexion
$ heimdall detect
Device detected
Vérifier le nom et le numéro de la partition de recovery
$ heimdall print-pit |grep -B12 recovery.img
--- Entry #18 ---
Binary Type: 0 (AP)
Device Type: 2 (MMC)
Identifier: 19
Attributes: 5 (Read/Write)
Update Attributes: 1 (FOTA)
Partition Block Size/Offset: 176128
Partition Block Count: 65536
File Offset (Obsolete): 0
File Size (Obsolete): 0
Partition Name: RECOVERY
Flash Filename: recovery.img
La partition de recovery a pour nom RECOVERY
Déconnecter la tablette et la redémarrer le mode download
La connecter au PC
Se placer dans le répertoire contenant l'image twrp qui vient d'être téléchargée et flasher le recovery - Nécessite les droits super-utilisateur au niveau de la commande heimdall
# heimdall flash --RECOVERY twrp-3.2.3-0-gts210velte.img --no-reboot
.....
Some devices may take up to 2 minutes to respond.
Please be patient!
Session begun.
Downloading device's PIT file...
PIT file download successful.
Uploading RECOVERY
100%
RECOVERY upload successful
.....
Le périphérique ne redémarre pas automatiquement.
Redémarrer directement en mode recovery pour éviter que le système n'efface TWRP et remette le recovery d'origine. Pour cela,
presser simultanément les touches Home, Volume up et down et Start
et dès que l'écran de download disparaît, relacher les touches et presser les touches Home, Volume up et Start
Le menu TWRP s'affiche après un instant.
Profiter de la présence de TWRP, pour effectuer un backup complet (hors données utilisateur) du système.
Dans le menu Sauvegarde, sélectionner toutes les partitions proposées (Sur mon système, échec du montage de la partition /data : problème avec le chiffrage)
Sélectionner le support de sauvegarde (la carte SD externe), son emplacement, lui donner un nom et effectuer la sauvegarde. Cocher l'option Ne pas générer de Digest pendant la sauvegarde.
Recopier la sauvegarde sur un PC
$ adb pull /sdcard1/TWRP/BACKUPS/b36c608a/backup_system_etc_sauf_data_rom_stock/ ./
Dans le menu TWRP, sélectionner Formater puis
>> Formater les données DATA >> et confirmer après avoir lu l'avertissement (remove all data et encryption)
>> Formater la carte SD externe selon l'utilisation de la carte SD prévue
pour utilisation en mode Adopted Storage : vfat
pour utilisation en mode Stockage amovible : vfat ou ext4 ou f2fs
>> Formatage avancé >> et cocher les caches Cache et Système (inutile de cocher la partition Data et cache Darwik/ ART qui est un répertoire de la partition Data, qui ont été effacés / formatés à l'étape précédente
Il n'existe pas à ce jour de version officielle LineageOS pour la tablette T819. Ci-dessous est décrit l'installation d'une version de développement. Celle-ci est basée sur LineageOS 15.1 (Android 8.1), voir : Forum dédié développement LineageOS pour T819
Dans cette version, le son sur les communications téléphoniques via GSM ne fonctionnent pas.
Télécharger la dernière version de lineageOS et vérifier le téléchargement par la somme de contrôle sha1sum : Téléchargement rom lineageOS pour T819 - gts210vlte
Copier le fichier zip sur la carte SD
$ adb push lineage-15.1-20180811_230908-UNOFFICIAL-gts210velte.zip /sdcard/
Dans le menu TWRP, sélectionner
Install >> /sdcard >> lineage-15.1-20180811_230908-UNOFFICIAL-gts210velte.zip.
Lancer l'installation et attendre que le message Successful s'affiche avant de passer à l'étape suivante.
Si celle-ci échoue avec un message du type :
This package supports bootloader (s) :..... T819XXU2BRB2, T819XXU2BRE1, T819XXU2BRE3 ....;
this device has bootloader T819XXU2BRF4
soit la version de bootloader est trop ancienne, soit trop récente. Dans le cas présent, elle est trop récente et il suffit de l'ajouter manuellement dans le fichier "updater-script" de la rom lineageOS. Pour cela, avant de copier et installer la rom sur sdcard :
dézipper la rom
modifier le script
META-INF/com/google/android/updater-script
Télécharger addonsu et addonsu removal et les sommes de contrôle pour l'architecture du processeur, ici arm64 et la version de lineageOS, ici lineageOS15.1
Vérifier le téléchargement
$ sha256sum addonsu-remove-15.1-arm64-signed.zip
e981cc7ca7d1acc3a8475e678f50aa11d64fa7fadcdd4c5bf777407af3ba952b addonsu-remove-15.1-arm64-signed.zip
$ sha256sum addonsu-15.1-arm64-signed.zip
b890e27937d9d14c9a22c66e4797fbc71bd854b6145e6be058326bc5796244ff addonsu-15.1-arm64-signed.zip
$ adb sideload addonsu-15.1-arm64-signed.zip
Télécharger fdroid privileged et sa signature
$ wget https://f-droid.org/repo/org.fdroid.fdroid.privileged.ota_2070.zip
$ wget https://f-droid.org/repo/org.fdroid.fdroid.privileged.ota_2070.zip.as
$ gpg --verify org.fdroid.fdroid.privileged.ota_2070.zip.asc org.fdroid.fdroid.privileged.ota_2070.zip
gpg: Signature made ven. 20 oct. 2017 11:02:33 CEST
gpg: using RSA key 7A029E54DD5DCE7A
gpg: Good signature from "F-Droid <admin@f-droid.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 37D2 C987 89D8 3119 4839 4E3E 41E7 044E 1DBA 2E89
Subkey fingerprint: 802A 9799 0161 1234 6E1F EFF4 7A02 9E54 DD5D CE7A
Installer fdroid privileged, par exemple avec adb sideload
$ adb sideload org.fdroid.fdroid.privileged.ota_2070.zip
Redémarrer la tablette et vérifier que lineageOS s'est correctement installé
Sélectionner le mode de stockage Adopted Storage ou Stockage externe amovible en conformité avec le formatage préalablement réalisé lors de l'étape "Nettoyage pour une "clean install""
Depuis fdroid, installer
BusyBox
Xposed_Downloader
Xposed_Installer
FakeGapps (module xposed)
Lancer Xposed_Installer : Vérifier dans Status que le framework est installé, puis dans Modules valider FakeGapps
Redémarrer pour faire prendre en compte l'installation de Xposed et du module
Installer microg comme décrit dans microG
On suppose l'installation des droits root, de fdroid et la "signature spoofing" installés
Activer le mode Développeur et le debuggage par adb
Activer le mode root (application et adb)
Télécharger l'application microG Services Core
Copier l'application dans /sys/priv-app
$ adb reboot
$ adb shell mount -o remount,rw /system
$ adb push microG_Services_Core_0.2.5.12879.apk /system/priv-app
Redémarrer pour faire prendre en compte l'installation en tant qu'application système de GmsCore
Ajouter le dépôt microG à F-Droid et mettre à jour le cache
microg https://microg.org/fdroid/repo
Récapitulatif des applications installées depuis fdroid
BusyBox_1.29.2.apk
FakeGapps_2.0.apk
FakeStore_0.0.2.apk
F-Droid_1.3.1.apk
microG_DroidGuard_Helper_0.1.0.apk
microG_Services_Framework_Proxy_v0.1.0.apk
Mozilla_UnifiedNlp_Backend_1.4.0.apk
Nominatim_Geocoder_Backend_1.2.2.apk
Xposed_Downloader_0.5.apk (inutile puisque chargé par adb)
Xposed_Installer_3.1.5.apk
Lancer Paramètres de microG (application installée par microG Services Core)
Accorder les autorisations manquantes à microG
Activer les Services Google (si souhaité) :
Enregistrement du Terminal auprès de Google
Google Cloud Messaging
Google SafetyNet
Configurer les Paramètres UnifiedNpl
Fournisseur de géolocalisation : Activer Mozilla Location Service
Fournisseur de géocodage : Activer Nominatim
Installer Yalp Store (non dépendant de microG) à partir de F-Droid , en remplacement du Play Store pour installer des applications utiles au test
Configurer YalpStore comme application système (la configuration nécessite les droits root, ils ne sont ensuite plus nécessaires)
Lancer Paramètres de microG >> Auto-vérification
No last known location... Do not have location to test geocoder... No UnifiedNlP was provided by the system within 10 seconds
Accorder manuellement les autorisations suivantes :
$ adb shell
gts210velte:/ $ su
gts210velte:/ # pm grant com.google.android.gms android.permission.ACCESS_FINE_LOCATION
gts210velte:/ # pm grant com.google.android.gms android.permission.ACCESS_COARSE_LOCATION
Sur Internet, vérifier la localisation sur google maps et openstreetmap
Installer Maps (google) et vérifier la localisation
Installer Maps (openstreetmap) et vérifier la localisation
s'enregistrer *#*#CHECKIN#*#*
utiliser une application telle que Push Notification Tester pour vérifier le bon fonctionnement de Google Push Notification
Vérifier dans les Paramètres de UnifiedNpl que le service correspondant est enregistré dans Google Push Notification
Installer depuis YalpStore, SafetyNet Check ou / et SafetyNet attest
En l'état la certification échoue, des informations supplémentaires sont fournies par les applications
Si Magisk Manager est disponible, un test SafetyNet est disponible dans la page principale.
En mode utilisateur (device), réinstaller les applications sauvegardées précédemment
$ cd /chemin_vers_répertoire_backup_applications/
$ rename 's/ /_/g' *.apk
$ for i in *.apk; do adb install -r $i; done
L'installation "clean install" de la version 16 de LineageOS basée sur Android 9 est comparable à celle de la version 15 avec les écarts décrits ci-après :
$ wget -c https://sourceforge.net/projects/luk-lineageos/files/gts210velte/lineage-16.0/lineage-16.0-20181002_090736-UNOFFICIAL-gts210velte.zip/download -O lineage-16.0-20181002_090736-UNOFFICIAL-gts210velte.zip
$ $ sha1sum lineage-16.0-20181002_090736-UNOFFICIAL-gts210velte.zip
6ff185de90f234125a2cce762199360f00f0120f lineage-16.0-20181002_090736-UNOFFICIAL-gts210velte.zip
Copier le fichier zip sur la carte SD
$ adb push lineage-16.0-20181002_090736-UNOFFICIAL-gts210velte.zip /sdcard/
Dans le menu TWRP, sélectionner
Install >> /sdcard >> lineage-16.0-20181002_090736-UNOFFICIAL-gts210velte.zip
Lancer l'installation et attendre que le message Successful s'affiche avant de passer aux étapes suivantes
Installer les droits super-utilisateur avec Magisk : voir Droits root
Utiliser nanodroid-patcher du projet nanodroid : voir Signature spoofing
Activer le mode Développeur et le debuggage par adb
Activer le mode root (application et adb)
Installer F-Droid
Ajouter le dépôt microG à F-Droid et mettre à jour le cache
microg https://microg.org/fdroid/repo
Récapitulatif des applications installées depuis fdroid
Services_Core_0.2.6.13280.apk
FakeGapps_2.0.apk
FakeStore_0.0.2.apk
F-Droid_1.3.1.apk
microG_DroidGuard_Helper_0.1.0.apk
microG_Services_Framework_Proxy_v0.1.0.apk
Mozilla_UnifiedNlp_Backend_1.4.0.apk
Nominatim_Geocoder_Backend_1.2.2.apk
Configurer Paramètres de microG comme décrit pour LineageOS 15
Lors de l'auto-vérification de l'application (plus loin), si les 3 dernières lignes de test sont négatives :
No last known location... Do not have location to test geocoder... No UnifiedNlP was provided by the system within 10 seconds
Accorder manuellement les autorisations suivantes :
$ adb shell
gts210velte:/ $ su
gts210velte:/ # pm grant com.google.android.gms android.permission.ACCESS_FINE_LOCATION
gts210velte:/ # pm grant com.google.android.gms android.permission.ACCESS_COARSE_LOCATION
Redémarrer impérativement avant de faire l'autotest de Paramètres de microG et d'ajouter de nouvelles applications
Pour installer une nouvelle version de LineageOS16 sans changement de version d'Android (nighly builds) : en mode Récupération TWRP
Effacer les caches
Télécharger la nouvelle version de LineageOS16 à partir de Téléchargement rom lineageOS 16 pour T819 - gts210vlte
Flasher la nouvelle ROM, la compatibilité d'usurpation de signature par NanoDroid-patcher et le routage par Magisk sont automatiquement réinstallés
Redémarrer