[2020-03-24 15:30:59.801978] Waiting for bootrom
[2020-03-24 15:31:21.396052] Found port = /dev/ttyACM0
[2020-03-24 15:31:21.435498] Handshake
[2020-03-24 15:31:21.456238] Disable watchdog
b''
b'\x00\x01'
Traceback (most recent call last):
File "main.py", line 92, in <module>
main()
File "main.py", line 54, in main
handshake(dev)
File "/home/XXXXXXX/Documents/HD 10/unbrick_suez/modules/handshake.py", line 11, in handshake
dev.write32(0x10007000, 0x22000000)
File "/home/XXXXXXX/Documents/HD 10/unbrick_suez/modules/common.py", line 150, in write32
self.check(self.dev.read(2), b'\x00\x01') # arg check
File "/home/XXXXXXX/Documents/HD 10/unbrick_suez/modules/common.py", line 87, in check
raise RuntimeError("ERROR: Serial protocol mismatch")
RuntimeError: ERROR: Serial protocol mismatch
I have everything disassembled and have been trying to short my fire hd 10. Here is what I get every time:
Code:[2020-03-24 15:30:59.801978] Waiting for bootrom [2020-03-24 15:31:21.396052] Found port = /dev/ttyACM0 [2020-03-24 15:31:21.435498] Handshake [2020-03-24 15:31:21.456238] Disable watchdog b'' b'\x00\x01' Traceback (most recent call last): File "main.py", line 92, in <module> main() File "main.py", line 54, in main handshake(dev) File "/home/XXXXXXX/Documents/HD 10/unbrick_suez/modules/handshake.py", line 11, in handshake dev.write32(0x10007000, 0x22000000) File "/home/XXXXXXX/Documents/HD 10/unbrick_suez/modules/common.py", line 150, in write32 self.check(self.dev.read(2), b'\x00\x01') # arg check File "/home/XXXXXXX/Documents/HD 10/unbrick_suez/modules/common.py", line 87, in check raise RuntimeError("ERROR: Serial protocol mismatch") RuntimeError: ERROR: Serial protocol mismatch
[2020-04-05 22:42:37.014509] Waiting for bootrom
[2020-04-05 22:42:45.335053] Found port = /dev/ttyACM0
[2020-04-05 22:42:45.374266] Handshake
[2020-04-05 22:42:45.396024] Disable watchdog
b''
b'\x00\x01'
Traceback (most recent call last):
File "main.py", line 92, in <module>
main()
File "main.py", line 54, in main
handshake(dev)
File "/home/xxx/Downloads/unbrick/modules/handshake.py", line 11, in handshake
dev.write32(0x10007000, 0x22000000)
File "/home/xxx/Downloads/unbrick/modules/common.py", line 150, in write32
self.check(self.dev.read(2), b'\x00\x01') # arg check
File "/home/xxx/Downloads/unbrick/modules/common.py", line 87, in check
raise RuntimeError("ERROR: Serial protocol mismatch")
RuntimeError: ERROR: Serial protocol mismatch
def check(self, test, gold):
if test != gold:
print(test)
print(gold)
print("ERROR: Serial protocol mismatch") <--- uncommented
#raise RuntimeError("ERROR: Serial protocol mismatch") <---- commented out
[2020-04-05 22:22:58.368021] Waiting for bootrom
[2020-04-05 22:23:40.592908] Found port = /dev/ttyACM0
[2020-04-05 22:23:40.631312] Handshake
[2020-04-05 22:23:40.652038] Disable watchdog
b''
b'\x00\x01'
ERROR: Serial protocol mismatch
b''
b'\x00\x01'
ERROR: Serial protocol mismatch
* * * Remove the short and press Enter * * *
[2020-04-05 22:24:00.674653] Init crypto engine
b''
b'\x00\x01'
ERROR: Serial protocol mismatch
b''
[SNIP - removed ~30 iterations of this]
b'\x00\x01'
ERROR: Serial protocol mismatch
b''
b'\x00\x00'
ERROR: Serial protocol mismatch
Traceback (most recent call last):
File "main.py", line 92, in <module>
main()
File "main.py", line 57, in main
load_payload(dev, "../brom-payload/build/payload.bin")
File "/home/xxx/Downloads/unbrick/modules/load_payload.py", line 113, in load_payload
hw_acquire(dev)
File "/home/xxx/Downloads/unbrick/modules/load_payload.py", line 25, in hw_acquire
dev.write32(CRYPTO_BASE, dev.read32(CRYPTO_BASE) & 0xFFFFFFF0)
File "/home/xxx/Downloads/unbrick/modules/common.py", line 125, in read32
data = struct.unpack('>I', self.dev.read(4))[0]
struct.error: unpack requires a buffer of 4 bytes
raise RuntimeError("ERROR: Serial protocol mismatch")
RuntimeError: ERROR: Serial protocol mismatch[/CODE]
[2020-04-10 07:34:52.475445] Waiting for bootrom
[2020-04-10 07:35:10.082899] Found port = /dev/ttyACM0
[2020-04-10 07:35:10.121918] Handshake
[2020-04-10 07:35:10.142719] Disable watchdog
b''
b'\x00\x01'
Traceback (most recent call last):
File "main.py", line 92, in <module>
main()
File "main.py", line 54, in main
handshake(dev)
File "/home/xxx/Downloads/modules/handshake.py", line 11, in handshake
dev.write32(0x10007000, 0x22000000)
File "/home/xxx/Downloads/modules/common.py", line 150, in write32
self.check(self.dev.read(2), b'\x00\x01') # arg check
File "/home/xxx/Downloads/modules/common.py", line 87, in check
raise RuntimeError("ERROR: Serial protocol mismatch")
RuntimeError: ERROR: Serial protocol mismatch
root@snowflake:/home/xxx/Downloads#
Bus 003 Device 006: ID 0e8d:2000 MediaTek Inc. MT65xx Preloader
[2020-04-10 08:49:34.458825] Found port = /dev/ttyACM0
[2020-04-10 08:49:34.498194] Handshake
[2020-04-10 08:49:34.518900] Disable watchdog
b''
b'\x00\x01'
Traceback (most recent call last):
File "main.py", line 192, in <module>
main()
does anyone know if this will work with the HD 8 2017? what pin would be needed?
@retyre could you lend me a hand and help me debug the script? i really can't read it with my meager skills :/
and I am stuck in preloader
amazon offered me a 15 bucks discount for a new hd10 as a workaround as it is just out of warranty![]()
@retyre could you lend me a hand and help me debug the script? i really can't read it with my meager skills :/
and I am stuck in preloader
amazon offered me a 15 bucks discount for a new hd10 as a workaround as it is just out of warranty![]()
I can try and help you. There is a lot of useful info in the hd10 Suez unlock thread. Look through that. Most the answers you search for are there. If you would like more assistance send me a message and I see I can do. I'm no expert, but have some experience with unlocking/ bricking these.
File "/home/xxx/Downloads/modules/handshake.py", line 11, in handshake
dev.write32(0x10007000, 0x22000000)
File "/home/xxx/Downloads/modules/common.py", line 150, in write32
self.check(self.dev.read(2), b'\x00\x01') # arg check
File "/home/xxx/Downloads/modules/common.py", line 87, in check
raise RuntimeError("ERROR: Serial protocol mismatch")
yeah.. so.,. that's how I ended up here
after I had installed TWRP I rebooted and since then I don't get any further than preloader
also took the tablet apart and tried to use the scripts used here (amonet bootrom and bootrom-step scripts)
tried with an old laptop, too. (USB2 ports) no joy
that's how I ended up here, that script is the only one that does _anything_
but my skills are not good enough to unravel what this means:
Code:File "/home/xxx/Downloads/modules/handshake.py", line 11, in handshake dev.write32(0x10007000, 0x22000000) File "/home/xxx/Downloads/modules/common.py", line 150, in write32 self.check(self.dev.read(2), b'\x00\x01') # arg check File "/home/xxx/Downloads/modules/common.py", line 87, in check raise RuntimeError("ERROR: Serial protocol mismatch")
Yes, you are in preloader to run the script, i would suggest you go over to the most current files from the unlock thread.
Try unbricking from there and see if you have the same result. Can you short the device and force bootrom?
https://forum.xda-developers.com/hd8-hd10/orig-development/unlock-fire-hd-10-2017-suez-t3913639
[2020-05-09 07:35:05.401969] Waiting for bootrom
[2020-05-09 07:35:42.807252] Found port = /dev/ttyACM0
[2020-05-09 07:35:42.807947] Handshake
[2020-05-09 07:35:42.808590] Disable watchdog
* * * Remove the short and press Enter * * *
[2020-05-09 07:35:46.735715] Init crypto engine
[2020-05-09 07:35:46.766793] Disable caches
[2020-05-09 07:35:46.767285] Disable bootrom range checks
[2020-05-09 07:35:46.784772] Load payload from ../brom-payload/build/payload.bin = 0x45D0 bytes
[2020-05-09 07:35:46.786846] Send payload
[2020-05-09 07:35:47.512935] Let's rock
[2020-05-09 07:35:47.513816] Wait for the payload to come online...
[2020-05-09 07:35:52.265234] all good
[2020-05-09 07:35:52.265655] Check GPT
[2020-05-09 07:35:53.548315] gpt_parsed = {'proinfo': (1024, 6144), 'PMT': (7168, 9216), 'kb': (16384, 2048), 'dkb': (18432, 2048), 'lk': (20480, 2048), 'tee1': (22528, 10240), 'tee2': (32768, 10240), 'metadata': (43008, 80896), 'MISC': (123904, 1024), 'reserved': (124928, 16384), 'boot': (141312, 32768), 'recovery': (174080, 34816), 'system': (208896, 3306496), 'cache': (3515392, 868352), 'userdata': (4383744, 56687583), '': (0, 1)}
[2020-05-09 07:35:53.548474] Check boot0
[2020-05-09 07:35:54.749738] Check rpmb
[2020-05-09 07:35:54.956222] Downgrade rpmb
[2020-05-09 07:35:54.958394] Recheck rpmb
[2020-05-09 07:35:55.855508] rpmb downgrade ok
[2020-05-13 18:20:50.591049] Init crypto engine
[2020-05-13 18:20:50.757320] Disable caches
[2020-05-13 18:20:50.761850] Disable bootrom range checks
[2020-05-13 18:20:50.852530] Load payload from ../brom-payload/build/payload.bin = 0x45D0 bytes
[2020-05-13 18:20:50.859881] Send payload
[2020-05-13 18:20:55.334680] Let's rock
[2020-05-13 18:20:55.341509] Wait for the payload to come online...
Traceback (most recent call last):
File "main.py", line 92, in <module>
main()
File "main.py", line 57, in main
load_payload(dev, "../brom-payload/build/payload.bin")
File "/media/ubuntu/STICK/modules/load_payload.py", line 143, in load_payload
dev.wait_payload()
File "/media/ubuntu/STICK/modules/common.py", line 171, in wait_payload
raise RuntimeError("received {} instead of expected pattern".format(data))
RuntimeError: received b'' instead of expected pattern
Hey guys. I bought a not working Fire HD 10 2017 because I thought it might be just a bad battery.
After trying a known working battery I tried plugging it into my PC and it seems like the PreLoader is connecting but is disconnecting right away after 1-2 seconds. Since I dont know what happened to this device is it worth trying this script on it? Or is this behavior a sign of a hardware failure?
When it is fixable I will setup a virtualbox right now
EDIT
I made a Ubuntu Live USB Stick and tried my luck. This is the outcome for now:
Im clueless what to do next...
Seems like the payload isnt going online as expected. lsusb shows the Mediatek Phone and not PreLoader
I believe that it the error related to modem manager...
sudo apt-get remove modemmanager
sudo apt-get remove --auto-remove modemmanager
sudo systemctl stop ModemManager.service
I did all the commands. I can try it again but I am pretty sure.
Tried it but its still not fixed. Might really be a hardware failure.You are better off using this thread and its files.....
https://forum.xda-developers.com/hd8-hd10/orig-development/unlock-fire-hd-10-2017-suez-t3913639
Hello
my problem is that after a successful unbrick the tablet still won't start. I plugged the battery in and out.
jorg@jorg-ThinkPad-X250:~/Schreibtisch/boot$ sudo ./bootrom.sh
[sudo] Passwort für jorg:
[2020-06-17 22:20:30.197994] Waiting for bootrom
[2020-06-17 22:20:55.321570] Found port = /dev/ttyACM0
[2020-06-17 22:20:55.322073] Handshake
[2020-06-17 22:20:55.322675] Disable watchdog
* * * Remove the short and press Enter * * *
[2020-06-17 22:21:05.042216] Init crypto engine
[2020-06-17 22:21:05.066640] Disable caches
[2020-06-17 22:21:05.067332] Disable bootrom range checks
[2020-06-17 22:21:05.083522] Load payload from ../brom-payload/build/payload.bin = 0x45D0 bytes
[2020-06-17 22:21:05.085466] Send payload
[2020-06-17 22:21:05.634210] Let's rock
[2020-06-17 22:21:05.636187] Wait for the payload to come online...
[2020-06-17 22:21:09.240955] all good
[2020-06-17 22:21:09.241475] Check GPT
[2020-06-17 22:21:10.530568] gpt_parsed = {'proinfo': (1024, 6144), 'PMT': (7168, 9216), 'kb': (16384, 2048), 'dkb': (18432, 2048), 'lk': (20480, 2048), 'tee1': (22528, 10240), 'tee2': (32768, 10240), 'metadata': (43008, 80896), 'MISC': (123904, 1024), 'reserved': (124928, 16384), 'boot': (141312, 32768), 'recovery': (174080, 34816), 'system': (208896, 3306496), 'cache': (3515392, 868352), 'userdata': (4383744, 56687583), '': (0, 1)}
[2020-06-17 22:21:10.530913] Check boot0
[2020-06-17 22:21:11.733233] Check rpmb
[2020-06-17 22:21:11.940314] rpmb looks broken; if this is expected (i.e. you're retrying the exploit) press enter, otherwise terminate with Ctrl+C
[2020-06-17 22:21:17.995600] Downgrade rpmb
[2020-06-17 22:21:17.997851] Recheck rpmb
[2020-06-17 22:21:18.888288] rpmb downgrade ok
jorg@jorg-ThinkPad-X250:~/Schreibtisch/boot$ ^C
lsusb shows:
jorg@jorg-ThinkPad-X250:~$ lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 003: ID 04ca:703c Lite-On Technology Corp. Integrated Camera
Bus 002 Device 002: ID 8087:0a2a Intel Corp.
Bus 002 Device 098: ID 0e8d:0003 MediaTek Inc. MT6227 phone
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
jorg@jorg-ThinkPad-X250:~$ ^C
sudo apt-get remove modemmanager
sudo apt-get remove --auto-remove modemmanager
sudo systemctl stop ModemManager.service
sudo ./bootrom.sh
k@Cray2:~/Desktop/unbrick_suez$ sudo ./bootrom.sh
[2019-02-03 12:28:08.466131] Waiting for bootrom
[2019-02-03 12:35:22.602290] Found port = /dev/ttyACM0
[2019-02-03 12:35:22.602653] Handshake
[2019-02-03 12:35:22.603225] Disable watchdog
* * * Remove the short and press Enter * * *
[2019-02-03 12:35:27.691503] Init crypto engine
[2019-02-03 12:35:27.709450] Disable caches
[2019-02-03 12:35:27.709854] Disable bootrom range checks
[2019-02-03 12:35:27.721298] Load payload from ../brom-payload/build/payload.bin = 0x45D0 bytes
[2019-02-03 12:35:27.724457] Send payload
[2019-02-03 12:35:28.262081] Let's rock
[2019-02-03 12:35:28.262834] Wait for the payload to come online...
[2019-02-03 12:35:31.824056] all good
[2019-02-03 12:35:31.824533] Check GPT
[2019-02-03 12:35:33.103565] gpt_parsed = {'lk': (20480, 2048), 'recovery': (174080, 34816), 'MISC': (123904, 1024), 'cache': (3515392, 868352), 'tee1': (22528, 10240), 'dkb': (18432, 2048), '': (0, 1), 'userdata': (4383744, 56687583), 'system': (208896, 3306496), 'PMT': (7168, 9216), 'tee2': (32768, 10240), 'proinfo': (1024, 6144), 'reserved': (124928, 16384), 'metadata': (43008, 80896), 'boot': (141312, 32768), 'kb': (16384, 2048)}
[2019-02-03 12:35:33.103747] Check boot0
[2019-02-03 12:35:34.291300] Check rpmb
[2019-02-03 12:35:34.499043] Downgrade rpmb
[2019-02-03 12:35:34.501403] Recheck rpmb
[2019-02-03 12:35:35.392720] rpmb downgrade ok
[2022-07-23 21:00:52.411325] Waiting for bootrom
[2022-07-23 21:01:00.657884] Found port = /dev/cu.usbmodem11101
[2022-07-23 21:01:00.665413] Handshake
[2022-07-23 21:01:00.666984] Disable watchdog
* * * Remove the short and press Enter * * *
[2022-07-23 21:01:15.049972] Init crypto engine
[2022-07-23 21:01:15.078454] Disable caches
[2022-07-23 21:01:15.079360] Disable bootrom range checks
[2022-07-23 21:01:15.095713] Load payload from ../brom-payload/build/payload.bin = 0x4820 bytes
[2022-07-23 21:01:15.097519] Send payload
[2022-07-23 21:01:15.791339] Let's rock
[2022-07-23 21:01:15.792479] Wait for the payload to come online...
[2022-07-23 21:01:15.796302] all good
[2022-07-23 21:01:15.796431] Running in minimal mode, assuming LK and TZ to have already been flashed.
[2022-07-23 21:01:15.796655] If this is correct (i.e. you used "brick" option in step 1) press enter, otherwise terminate with Ctrl+C
[2022-07-23 21:01:18.585629] Check GPT
Traceback (most recent call last):
File "main.py", line 192, in <module>
main()
File "main.py", line 95, in main
switch_user(dev)
File "main.py", line 56, in switch_user
block = dev.emmc_read(0)
File "~/Downloads/amonet-suez-v1.1.2/amonet/modules/common.py", line 196, in emmc_read
raise RuntimeError("read fail")
RuntimeError: read fail
def emmc_read(self, idx):
# magic
self.dev.write(p32_be(0xf00dd00d))
# cmd
self.dev.write(p32_be(0x1000))
# block to read
self.dev.write(p32_be(idx))
data = self.dev.read(0x200)
if len(data) != 0x200:
raise RuntimeError("read fail")
def emmc_read(self, idx):
# magic
self.dev.write(p32_be(0xf00dd00d))
# cmd
self.dev.write(p32_be(0x1000))
# block to read
self.dev.write(p32_be(idx))
data = self.dev.read(0x200)
if len(data) != 0x200:
data = self.dev.read(0x200)
if len(data) != 0x200:
raise RuntimeError("read fail")
If he has to do that, it will also likely require an edit to the script to allow enter to be tapped. I'll have to look back on where that edit needs to go.