19. Dezember 2016

Flashen eines Xiaomi Redmi 3X

Das Xiaomi Redmi 3X von Gearbest hatte folgende Firmware:



Da die stable-ROMs von Xiaomi immer 3 Punkte enthalten (z.B. 8.1.1.0) sieht man hier sehr schön, dass 8.1.1.0.0 eine inoffizielle Firmware (sog. "Shop-ROM) ist.

Dann die Überraschung: Unter en.miui.com/a-234.html gibt es bis jetzt (Stand: 18.12.2016) nur eine China-ROM, keine global ROM.

In einigen Foren haben offenbar einige die global ROM für das Xiaomi Redmi 3S erfolgreich geflasht. Das 3X und das 3S scheinen sich offenbar nur durch den RAM (3X: 2GB, 3S: 3GB) zu unterscheiden. Insofern hört sich das plausibel an. Also unter obigen Link das Fastboot-ROM für das Xiaomi Redmi 3S (global stable 8.1.1.0) heruntergeladen und genauso geflasht, wie das Xiaomi Redmi 3S.

Der erste Unterschied, der auffiel: Das Gerät wird unter COM20 und nicht unter COM10 erkannt:




Ok, das muss ja nichts heißen, also via MiFlash das ROM geflasht. Hier die böse Überraschung:


Der Flash-Vorgang lief ein paar Minuten und alles sah gut aus, bis dann dieser Fehler kam.

Was nun? Ein fehlerhafter Flash-Vorgang "ist für mich Neuland" ;-)
Ich habe mich dann dazu entschieden, das Gerät einfach mal neu zu starten. Mi-Logo kommt, aber dann:


Ich habe auf dem Handy nichts verschlüsselt. Ich vermute, dass beim flashen ein Image oder eine Partition zuerst verschlüsselt geflasht und beim ersten Start automatisch entschlüsselt wird. Hier scheint in diesem Fall etwas schiefgelaufen zu sein. Interessant ist, dass das System an sich zu funktionieren scheint, denn wenn ich den Power-Schalter gedrückt halt, konnt das gewohnte Menü mit "Airplane-Modus", "Ausschalten", "Reboot"...

Also versuche ich das Handy einfach nochmal zu flashen:
Gerät ausgeschaltet, Power-Schalter und Volume+ gedrückt halten bis es vibriert.
Mi-Logo kommt und auch das Menü:

















Also wieder links auf "Download" getippt. Normalerweise geht an dieser Stelle das Display einfach aus und es wird von MiFlash erkannt. Jetzt aber, startet das Gerät einfach durch und es kommt wieder die Passwort-Abfrage (s.o.).

Gut, dann probieren wir die unterschiedlichen Möglichkeiten durch, mit dem Handy wieder Kontakt aufzunehmen:

Gerät ausgeschaltet, mit USB verbunden:

adb>adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached


Leider nichts gefunden. MiFlash erkennt auch nichts.

-----------------------------------------------

Gerät eingeschaltet, Passwortabfrage (s.o.) kommt, dann das Gerät via USB verbunden:
Gerät piept einmal, im Gerätemanager taucht folgender Eintrag auf:



Als Fehler wird dasselbe ausgegeben, was ich vor Kurzem hier beschrieben hatte. Allerdings hat diese Vorgehensweise diesmal nicht geholfen.

-----------------------------------------------

Gerät ausgeschaltet, dann Power-Taste und Volume+ gedrückt gehalten. Menü erscheint (s.o.), dann auf "Recovery" getippt:
Es kommt ein Bild mit einem Handy und einem USB-Kabel. Dazu der Text "pcsuite.mi.com".
MiSuite gestartet, Gerät via USB angeschlossen.
Gerät erkennt den Laptop (Kabel wird animiert in das Gerät eingerführt), Laptop hat einiges an Plattenaktivität, aber es passiert nichts. (Evtl. wegen des Problems im Geräte-Manager? (s.o.))

-----------------------------------------------

Gerät ausgeschaltet, Power-Taste und Volume- gedrückt gehalten: Fastboot startet, d.h. ich sehe den Xiaomi-Hasen mit dem Androiden. Dann ads Gerät via USB verbunden.

Im Geräte-Manager taucht das Gerät auf:


Parallel dazu meldet die noch immer laufende MiSuite: "Try connect in normal mode then switch".

Aber via ADB immer noch nicht sichtbar:
adb>adb devices
List of devices attached


Im MiFlash tut sich dafür etwas:


Als Image ist immer noch das ROM für das 3S ausgewählt. Also habe ich das China-ROM (dev 6.12.15) heruntergeladen. Dann im MiFlash ausgewählt und die nächste Überraschung:


"Das Objekt mit Nullwert muss einen Wert haben"

In den Logfiles von MiFlash findest sich folgendes:

[01:12:07]:fastboot path: C:\Xiaomi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe
[01:12:07]:Das Objekt mit Nullwert muss einen Wert haben.


Probieren wir dasselbe nochmal mit der China-stable 8.1.4.0: Gleiches Resultat.

Ich habe zum Flashen des Redmi 3S damals eine Beta-Version verwendet, weil die MiFlash stable mit dem 3S nicht konnte. Versuchen wir also diesmal die offizielle MiFlash Stable.




Da die unterschiedlichen Releases vom MiFlash keine Versionsnummern beinhalten, habe ich die aktuelle Version (Stand: 19.12.2016) hier zum Download bereitgestellt.

Wichtig: Alte MiFlash-Version sauber deinstallieren, Computer neu starten, neue MiFlash-Version installieren.


Leider bringt die aktuelle Version keine Lösung. Bei beiden China-ROMs kam folgende Meldung:
[01:58:17]:copy C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Qualcomm\Driver\serial\i386\qcCoInstaller.dll to C:\WINDOWS\system32\qcCoInstaller.dll
[01:58:17]:open RegistryKey Software\XiaoMi\MiFlash\
[01:58:22]:install driver C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Driver\android_winusb.inf to ,result False,GetLastWin32Error Unknown error (0xe000024b)
[01:58:22]:mkdir "C:\Users\Dark\.android"
[01:58:22]:output:
[01:58:22]: echo 0x2717 >>"C:\Users\Dark\.android\adb_usb.ini"
[01:58:22]:output:
[01:58:22]:open RegistryKey Software\XiaoMi\MiFlash\
[01:58:23]:install driver C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Nvidia\Driver\NvidiaUsb.inf to ,result False,GetLastWin32Error Unknown error (0xe000022f)
[01:58:23]:open RegistryKey Software\XiaoMi\MiFlash\
[01:58:23]:install driver C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Microsoft\Driver\tetherxp.inf to ,result False,GetLastWin32Error Unknown error (0xe000022f)
[01:58:23]:open RegistryKey Software\XiaoMi\MiFlash\
[01:58:25]:install driver C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Microsoft\Driver\wpdmtphw.inf to ,result False,GetLastWin32Error Unknown error (0xe000022f)
[01:58:25]:open RegistryKey Software\XiaoMi\MiFlash\
[01:58:25]:install driver C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Qualcomm\Driver\qcser.inf to C:\WINDOWS\INF\oem28.inf,result True,GetLastWin32Error
[01:58:25]:set RegistryKey value:qcser.inf--oem28.inf
[01:59:29]:Die angegebene Umwandlung ist ungültig.
[01:59:29]:   bei XiaoMiFlash.code.Utility.UsbDevice.GetAndroidDevices(TreeViewUsbItem item, List`1& outItems) in D:\Workspace\MiFlash\XiaoMiFlash\XiaoMiFlash\code\Utility\UsbDevice.cs:Zeile 99.
   bei XiaoMiFlash.code.Utility.UsbDevice.GetAndroidDevices(TreeViewUsbItem item, List`1& outItems) in D:\Workspace\MiFlash\XiaoMiFlash\XiaoMiFlash\code\Utility\UsbDevice.cs:Zeile 101.
   bei XiaoMiFlash.code.Utility.UsbDevice.GetScriptDevices(List`1 UsbItems) in D:\Workspace\MiFlash\XiaoMiFlash\XiaoMiFlash\code\Utility\UsbDevice.cs:Zeile 89.
   bei XiaoMiFlash.code.Utility.UsbDevice.GetDevice() in D:\Workspace\MiFlash\XiaoMiFlash\XiaoMiFlash\code\Utility\UsbDevice.cs:Zeile 47.
   bei XiaoMiFlash.MainFrm.RefreshDevice() in D:\Workspace\MiFlash\XiaoMiFlash\XiaoMiFlash\MainFrm.cs:Zeile 298.
[01:59:44]:Die angegebene Umwandlung ist ungültig.
[01:59:44]:   bei XiaoMiFlash.code.Utility.UsbDevice.GetAndroidDevices(TreeViewUsbItem item, List`1& outItems) in D:\Workspace\MiFlash\XiaoMiFlash\XiaoMiFlash\code\Utility\UsbDevice.cs:Zeile 99.
   bei XiaoMiFlash.code.Utility.UsbDevice.GetAndroidDevices(TreeViewUsbItem item, List`1& outItems) in D:\Workspace\MiFlash\XiaoMiFlash\XiaoMiFlash\code\Utility\UsbDevice.cs:Zeile 101.
   bei XiaoMiFlash.code.Utility.UsbDevice.GetScriptDevices(List`1 UsbItems) in D:\Workspace\MiFlash\XiaoMiFlash\XiaoMiFlash\code\Utility\UsbDevice.cs:Zeile 89.
   bei XiaoMiFlash.code.Utility.UsbDevice.GetDevice() in D:\Workspace\MiFlash\XiaoMiFlash\XiaoMiFlash\code\Utility\UsbDevice.cs:Zeile 47.
   bei XiaoMiFlash.MainFrm.RefreshDevice() in D:\Workspace\MiFlash\XiaoMiFlash\XiaoMiFlash\MainFrm.cs:Zeile 298.