Pitfalls beim Rooten des HTC Butterfly

Feine Details und ein paar häßliche Überraschungen

Mein alt­ge­dien­tes Ga­la­xy S2 scheint den Al­terstod zu ster­ben. Vor län­ge­rer Zeit habe ich ein HTC But­ter­fly in die Fin­ger be­kom­men; da­mals habe ich den Auf­wand des Um­stiegs ge­scheut, da nach dem Roo­ten plötz­lich die HTC-Over-the-air-Up­dates nicht mehr ein­ge­spielt wer­den konn­te. Nun woll­te ich einen neuen Ver­such wagen, der mich letzt­end­lich min­des­tens fünf schlaf­lo­se Näch­te ge­kos­tet hat. Ich be­haup­te mal ganz steil, daß ein grö­ße­rer Teil nicht auf meine man­gel­haf­te Re­cher­che, son­dern ei­ni­ge hä­ß­li­che Über­ra­schun­gen zu­rück­zu­füh­ren ist. Damit es an­de­ren HTC-Usern (dürf­te für so ziem­lich alle ak­tu­el­len HTC-Mo­del­le gel­ten) nicht eben­so geht, schrei­be ich die Ge­schich­te hier ein­mal auf.

Der An­fang des Dra­mas

Ich woll­te ein Handy mit root. Da das mit einem Fac­to­ry-Re­set ein­her­geht, war das sei­ner­zeit meine erste Amts­hand­lung. HTC gibt sich da ja freund­lich ge­gen­über Ex­pe­ri­men­tier­freu­di­gen, über eine Web­sei­te kann man sich einen Un­lock-Code zum Ent­sper­ren des Boot­loa­ders schi­cken las­sen. Also Un­lo­cken, Cust­om-Re­co­very TWRP auf­spie­len, su­peru­ser in­stal­lie­ren, fer­tig. Mehr woll­te ich an sich nicht.

Pro­blem: OTA-Up­dates lie­ßen sich nun nicht mehr ein­spie­len; dies schob ich (zu­nächst aus­schlie­ß­lich) auf das Cust­om Re­co­very, ein Stock Re­co­very fand ich im Netz nicht, des­halb lan­de­te das Gerät man­gels Zeit in der Ecke

Das De­sas­ter…

…be­gann mit dem Ge­dan­ken, dann eben ein Cust­om ROM zu in­stal­lie­ren. In­s­ert­Co­in sah sexy aus, also flugs ein Back­up ge­macht und das ROM in­stal­liert. Tat nicht, Gerät hing in Boot-Loop oder re­set­te­te sich beim Er­rei­chen der Te­le­fon-PIN-Ein­ga­be. Aber wofür hat man ein Back­up!

Back­up ein­ge­spielt – Te­le­fon boo­tet nicht mehr.

…und die Lö­sung

S-OFF und seine Funk­ti­on

HTC (und wohl noch ei­ni­ge wei­te­re Her­stel­ler) hat einen wei­te­ren Schutz­me­cha­nis­mus, näm­lich S-ON/S-OFF. Im Modus S-ON ist der Boot­loa­der HBOOT und die Firm­ware (Ra­dio-ROM) vor dem Über­schrei­ben ge­schützt. Prin­zi­pi­ell eine gute Idee, so kann man das Gerät an sich nicht bri­cken.

Was sich im Laufe der Zeit her­aus­stell­te (und ich dum­mer­wei­se nicht im Netz ge­fun­den habe): Bei S-OFF ist es nicht mög­lich, im Re­co­very-Mo­de den Ker­nel (boot.​img) zu flas­hen. Per­ver­ser­wei­se führt der Ver­such auch zu kei­ner Feh­ler­mel­dung. Um ein Back­up wie­der­her­zu­stel­len, ist also ein Drei­schritt nötig:

  • Res­to­re des Back­ups in TWRP
  • Neu­start in Fast­boot
  • Mit­tels fastboot flash boot boot.emmc.win den Ker­nel zu­rück­spie­len (er­for­dert na­tür­lich den Ker­nel auf dem Rech­ner, aber man hat ja hof­fent­lich sein Back­up auch vom Gerät ‘run­ter­ge­ret­tet…)

Die Ver­pa­ckung lügt!

Vom HTC But­ter­fly gibt es zwei Ver­sio­nen: Das x920d und das x920e. Laut Ver­pa­ckung habe ich ein x920d. Das Aus­le­sen der Sys­tem­in­fos mit­tels

fastboot getvar cid
fastboot getvar mid

lie­fer­te aber als cid HTC__033 und eine Mo­del-ID PL9930000, die beim re­cher­chie­ren im Netz dem x920e zu­ord­nen lie­ßen! Klar, daß ein ROM nicht funk­tio­niert, wenn es auf der fal­schen Hard­ware in­stal­liert wird…

OTA-Up­dates

OTA-Up­dates las­sen sich im Modus S-ON nur in­stal­lie­ren, wenn das Or­gi­nal-Re­co­very-ROM in­stal­liert ist und der Boot­loa­der ge­lockt(!) ist. Hat man sein Te­le­fon S-OFF, ist an­geb­lich der ge­lock­te Boot­loa­der nicht mehr nötig – das habe ich aber noch nicht ge­tes­tet.

Der Weg zu­rück nach vorn

Mit obi­gem Kniff konn­te ich mein Back­up wie­der zum Lau­fen brin­gen; ein Stock Re­co­very ROM habe ich in der OTA Collec­tion bei xda­de­ve­l­o­pers ge­fun­den. Also:

  • Back­up ein­spie­len
  • Stock Re­co­very flas­hen
  • Boot­loa­der lo­cken

Nun tru­del­ten meh­re­re OTA-Up­dates ein, die sich auch an­stands­los auf­spie­len lie­ßen. Nach­dem die Soft­ware auf dem neu­es­ten Stand war (bei mir: Soft­ware 3.​13.​401.​4), konn­te ich also end­lich…

  • Boot­loa­der un­lo­cken
  • TWRP flas­hen
  • Roo­ten
  • Mit Hilfe von Fire­wa­ter das Handy S-OFF schal­ten.

Das Or­gi­nal-Re­co­very habe ich aus dem OTA-Zip (siehe obi­ger xda-Link) her­aus­ge­zo­gen und auf­ge­ho­ben. Nun warte ich ge­spannt, ob sich das nächs­te OTA-Up­date auch mit ge-un­lock-tem Boot­loa­der auf­spie­len läßt.

Da mich das Teil aber der­ma­ßen ge­är­gert hat, hat es nun we­nigs­tens eine stan­des­ge­mä­ße Blue­tooth-Ken­nung :-)