Een bijna zes jaar oude telefoon die nog prima werkt, maar ruim twee jaar geleden zijn laatste officiële update kreeg. Wat moet je daar nog mee, zou je zeggen. Op magische wijze helpt Windows mij dit apparaat weer tot leven te wekken.

hetlab logo
Henk van de Kamer

 

In de vorige aflevering van Het Lab berekende ik dat een mobieltje minimaal vijf jaar mee moet gaan om het Europese klimaatdoel voor 2050 te halen. Ik heb niet de illusie dat mensen daar gehoor aan zullen geven. Eind 2018 kreeg ik tegen betaling van de verzendkosten van een lezer een Samsung Galaxy S5. Dat was echter midden in een stressvolle periode waarin ik mijn huis moest verkopen. Het afgelopen jaar heb ik onder andere drie boeken geschreven. Maar in een paar verloren uurtjes heb ik deze telefoon toch eens afgestoft...

Rooten
Volgens Wikipedia zag deze telefoon met vermoedelijk Android-versie 5.0 Lollipop het levenslicht op 11 april 2014. Voor zover ik kan nagaan, werd in Europa begin augustus 2017 de Android security patch van juli uitgerold. Latere updates kan ik niet vinden. Ofwel: eind 2018 was het geheel zo lek als een mandje, terwijl het toestel nog prima werkt. Om die reden had onze lezer geprobeerd om de telefoon te rooten. Als dat lukte, kon de Androidversie van Samsung vervangen worden door bijvoorbeeld LineageOS. Deze wordt gemaakt via de openbare broncode van Android en als je mazzel hebt, is zelfs de laatste versie installeren mogelijk.

Ik zeg hierboven ‘als dat lukte’. Onze lezer had pech: de Odin-software – alleen voor Windows – gaf aan dat het rooten gelukt was, maar na een herstart kwam de telefoon in een zogenaamde recovery mode terecht:

RECOVERY BOOTING.....
RECOVERY IS NOT SEANDROID ENFORCING
Set Warranty Bit : recovery

Mogelijk heb je ooit je computer gestart vanaf een beschadigde of zelfs lege harddisk. Je krijgt dan een soortgelijke melding. Bovenstaande boodschap is afkomstig van een programma dat de hardware initialiseert en vervolgens probeert om het besturingssysteem te starten. Dat mislukt, zodat het nu een oplossing van jouw kant verwacht.

Heimdall
Dat herstellen kan eveneens via Odin. Je zoekt dan de juiste firmware. Helaas worden deze meestal niet via de officiële kanalen aangeboden. Ook Odin is voor zover ik kan nagaan nooit door Samsung vrijgegeven, waardoor je in beide gevallen terechtkomt op allerlei vage websites. Bovendien zijn er meerdere varianten van de Samsung Galaxy S5 en alleen de versie die hoort bij jouw model, taal en eventueel provider kan op deze manier geïnstalleerd worden. Een verkeerde versie kan je nog verder in de ellende storten. Ik heb een SM-G900F ofwel de internationale versie.

Zoals gezegd: vage websites en we weten allemaal dat juist Windows het doelwit is voor infecties. Wie serieus wil experimenteren met oude telefoons, moet of zorgen voor een zeer goede beveiliging óf eens serieus naar Linux kijken. Wie mij een beetje kent, weet dat ik sowieso voor die laatste optie ga. Het protocol dat Odin gebruikt, is onder Linux beschikbaar via Heimdall. Tijdens het experimenteren bleek dat de versie van Debian Stretch te oud is voor de S5. Daarom heb ik een nieuwere gecompileerd.

            hetlab 312 recovery 2
  De telefoon vraagt of we de Odin flash-methode willen
starten. Daarmee kunnen we partities herstellen en 
de officiële of een niet-officiële firmware installeren. 
Het antwoord is: ja

PIT
Aangezien de recovery booting niet lukt, zetten we de telefoon uit. Vervolgens drukken we tegelijk de Volume Up-, home- en power-knop in en houden deze vast totdat de waarschuwing in de afbeelding  op deze pagina verschijnt. Dit is een foto gemaakt met een andere telefoon en dus niet de beste kwaliteit. Vervolgens moeten we een usb-kabel aansluiten en verbinden met onze computer. Ooit werd beweerd dat usb de standaardkabel zou worden, maar inmiddels bezit ik een flinke collectie kabels met allerlei verschillende aansluitingen. Het exemplaar op de Galaxy S5 had ik uiteraard niet. Volgens Wikipedia is het een micro-usb 3.0-aansluiting. Deze heeft meer dan de gebruikelijke vier pinnen zoals ik in een ander experiment ontdekte (zie kader). Op het rechterdeel kan echter gewoon een micro-usb 2.0-stekker worden ingeprikt. Uiteraard heb ik de juiste kabel in China besteld.

Zoals je ziet moeten we bevestigen dat we inderdaad de Odin-routine willen starten. Op de computer geven we dan het volgende commando:

$ heimdall detect

Het antwoord Device detected geeft aan dat de communicatie werkt. Voordat ik ga experimenteren, wil ik eerst een aantal partities veiligstellen. Op één is bijvoorbeeld het IMEI-nummer aanwezig en als dit gewist wordt, hebben we een serieus probleem. Op een andere staan de calibratiegegevens van wifi en bluetooth. Deze zijn voor elke Galaxy S5 anders! Tot slot heeft de vorige eigenaar mij gevraagd om te kijken of er nog foto’s aanwezig zijn. De volgende stap is dus het opvragen van de PIT – de Partition Information Table – en dat gaat als volgt:

$ heimdall print-pit --no-reboot > s5_pit.txt

De inhoud van dit tekstbestand voldoet aan de verwachtingen. Ik zie een hele serie partities met grootte en naam. Naar analogie met de eerder genoemde harddisk lijkt deze te zijn ingedeeld. Zonder deze informatie kan het systeem helemaal niets, dus dit is hoopvol.

Magie
Hoewel de geëxtraheerde PIT aan de verwachtingen voldoet, weten we niet of de informatie overeenkomt met een werkend model. Dat controleren is dus de volgende stap. Na meer dan een dag zoeken en vele downloads ontdekte ik uiteindelijk een versie waarin een PIT-bestand aanwezig was. Voor de Galaxy S5 zijn twee verschillende soorten firmwarebestanden te vinden. Bijna allemaal zijn ze bedoeld voor het upgraden naar een nieuwere versie van Android. Bij hoge uitzondering vinden we een versie die bedoeld is voor reparatie en voor deze is een PIT-bestand essentieel.

Zoals gezegd, vele downloads. Omdat de eerste serie downloads geen PIT-bestand bevatten, heb ik mijn Windows 7-installatie afgestoft en daarin Odin geïnstalleerd. Een van mijn hypotheses was dat de PIT-informatie mogelijk in de andere bestanden aanwezig is.

Nu is Odin een vaag programma en tijdens het rondkijken kreeg ik de indruk dat de update werd doorgevoerd. Uiteraard verwijderde ik meteen de usb-kabel. Dit gebeurde midden in de nacht, dus ik besloot ik te gaan slapen voordat ik nog meer fouten zou maken.

De volgende ochtend bleek de telefoon zichzelf te hebben herstart naar Android! Ik heb al vaker gezegd dat Windows soms op magie lijkt en deze ervaring heeft dit weer eens bevestigd. Uiteraard heb ik meteen de telefoon doorgespit en vond ik de nodige foto’s. Plus allerlei andere informatie. Dit alles deed mij vermoeden dat het rooten door onze lezer destijds niet lukte, maar dat er tijdens die poging ergens een bitje is omgevallen. Hoe dan ook, ik heb meteen van alle belangrijke informatie een back-up gemaakt.

Rooten
Nu alles weer draait, wordt het tijd om het experiment dat onze lezer van plan was, eens uit te gaan voeren. Alleen ga ik daar geen Odin-software voor gebruiken! Zoals het een grafisch programma betaamt, worden er geen ‘enge dingen’ aan de gebruiker getoond. En juist dat soort informatie is essentieel om te kijken wat er gebeurt. Gelukkig heeft de Linux command line exact het omgekeerde en geeft soms zelfs te veel informatie. Maar dat is altijd beter dan helemaal niets.

Vroeger was rooten een complex proces. Maar ondertussen zijn de ontwikkelaars veel verder. Nalezen van de TWRP – Team Win Recovery Project – leerde mij dat we deze met Heimdall in de recovery partitie kunnen flashen. Met andere woorden: bovenstaande recovery boot vindt dan uitvoerbare code. Zo gezegd, zo gedaan:

$ heimdall flash --RECOVERY twrp-3.3.1-0-klte.img --no-reboot

Het deel na flash is de naam van de partitie waar de image geplaatst moet worden. De laatste optie is nodig, omdat de Galaxy S5 anders automatisch herstart en ons werk teniet doet. Na afloop gebruiken we dus de genoemde toetsencombinatie om TWRP te starten. Deze zorgt er als eerste voor dat ons werk definitief wordt. TWRP is onafhankelijk van Android, dus we kunnen nu de bestanden van Android manipuleren. Voor het rooten heb ik het Magisk-zipbestand gedownload en uitgevoerd. Android draait weer, maar u met root-toegang. De telefoon beschikt nu weer over de originele, officiële firmware plus alle geïnstalleerde apps en instellingen. En de eigenaar heeft in ieder geval zijn foto’s weer. 

   
 

USB 3.x

                        
     Er is een (ongeschreven?) conventie dat usb 3.x connectors binnenin een blauwe kleur hebben. Helaas is die conventie bij een aantal Chinese fabrikanten niet bekend. Ik heb nu dan ook een usb flashdrive met een blauwe connector, maar ondanks de bewering van de handelaar is het een 2.0-exemplaar. Dit kan met software getest worden, maar sneller is met een zaklamp in de connector schijnen. Naast de vier gebruikelijke banen zie je halverwege achterin een vijftal extra pinnen als het een USB 3.x-exemplaar is.