Redmi Note 4 Mido 4/64 Factory Reset lead to boot-loop - please help resetting! - Xiaomi Redmi Note 4 Guides, News, & Discussion

Dear Community,
please follow my humble plea and help me getting my Xiaomi Redmi Note 4 Mido "SnapDragon" Global working again.
My device is on stock rom, bootloader LOCKED and no root.
What happened?
I updated to version V9.0.3.0.NCFMIEI without any problems.
Now the updater app tells me to upgrade to the latest version Version: V9.0.5.0.NCFMIEI (MIUI9).
The Update-App tells me that the update is only 52MB of size, I downloaded it and when I reboot the device the stock recovery tells me that "Update.zip failed to install".
Then I reboot back into the system and now the Updater-App tells me the update was 1,3Gbyte of size. When I try to download and install it, it always says that "the source could not be verified" and "not allowed to update to custom roms".
I tried this multiple times over the last weeks, nothing ever changed.
Bad thing is, I started to get random shutdowns and reboots during daily usage.
My thinking was I should factory reset the device. I backed up all data and used the android feature from settings to factory restet. When rebooting I endet up at the Mi logo with a small progress bar (not the 3 dots!!) . The factory reset fails because nothing happens when the bar is full (I let the phone work for about 2 hours). When I reboot I always get the same progress-bar but it crashes within the first third and then reboots again.
I read this forum and installed "MiFlash", downloaded the latest firmware from Xiaomi, named "Redmi Note 4 Qualcomm Latest Global Stable Version Fastboot File Download" and tried to flash it. The flashing only takes about 1 second saying everything went fine, but the log says the following:
Code:
[0,00 b346e0dc0304]:image path:C:\firmware2
[0,00 b346e0dc0304]:env android path:C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android
[0,00 b346e0dc0304]:script :C:\firmware2\flash_all_lock.bat
[0,01 b346e0dc0304]:Physical Memory Usage:1728512 Byte
[0,08 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>"C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar product 2>&1 | findstr /r /c:"^product: *MSM8953" || "C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar product 2>&1 | findstr /r /c:"^product: *mido" || echo Missmatching image and device
[0,14 b346e0dc0304]:product: mido
[0,14 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>"C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar product 2>&1 | findstr /r /c:"^product: *MSM8953" || "C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar product 2>&1 | findstr /r /c:"^product: *mido" || exit /B 1
[0,20 b346e0dc0304]:product: mido
[0,20 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>rem "C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 erase bk12 2>&1
[0,20 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>if not 0 == 0 exit /B 1
[0,20 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>rem "C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar soc_id 2>&1 | findstr /r /c:"^soc_id: *239" || echo Missmatching image and device in soc_id
[0,20 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>rem "C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar soc_id 2>&1 | findstr /r /c:"^soc_id: *239" || exit /B 1
[0,20 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>"C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 oem device-info 2>&1 | findstr /r /c:"Device unlocked: true" || echo Device oem locked
[0,28 b346e0dc0304]:Device oem locked
[0,28 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>"C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 oem device-info 2>&1 | findstr /r /c:"Device unlocked: true" || exit /B 1
[0,36 b346e0dc0304]:process exit.
[0,36 b346e0dc0304]:flash done
I figured I downloaded the wrong image, so i tried with "Redmi 4X Latest Global Stable Version Fastboot File Download" but it gave me the same positive information within MiFlash interface but the log stated the same.
So I tried with the Mediatek "Nikel" version, now MiFlash tells me right from the beginning, red light, that my image is wrong and the log looks like this:
Code:
[0,00 b346e0dc0304]:image path:L:\Downloads\nikel_update
[0,00 b346e0dc0304]:env android path:C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android
[0,00 b346e0dc0304]:script :L:\Downloads\nikel_update\flash_all_lock.bat
[0,01 b346e0dc0304]:Physical Memory Usage:1953792 Byte
[0,07 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>"C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar product 2>&1 | findstr /r /c:"^product: nikel" ||
[0,11 b346e0dc0304]:Missmatching image and device error
[0,11 b346e0dc0304]:process exit.
[0,11 b346e0dc0304]:error:Missmatching image and device error
Maybe there is an error with MiFlash itself? I installed all drivers, I run windows with unsigned drivers in test mode.
Bottom Line:
Can you help me to just reset my device and make it usable again? THANK YOU SO MUCH!!!

edwardenglish said:
Dear Community,
please follow my humble plea and help me getting my Xiaomi Redmi Note 4 Mido "SnapDragon" Global working again.
My device is on stock rom, bootloader LOCKED and no root.
What happened?
I updated to version V9.0.3.0.NCFMIEI without any problems.
Now the updater app tells me to upgrade to the latest version Version: V9.0.5.0.NCFMIEI (MIUI9).
The Update-App tells me that the update is only 52MB of size, I downloaded it and when I reboot the device the stock recovery tells me that "Update.zip failed to install".
Then I reboot back into the system and now the Updater-App tells me the update was 1,3Gbyte of size. When I try to download and install it, it always says that "the source could not be verified" and "not allowed to update to custom roms".
I tried this multiple times over the last weeks, nothing ever changed.
Bad thing is, I started to get random shutdowns and reboots during daily usage.
My thinking was I should factory reset the device. I backed up all data and used the android feature from settings to factory restet. When rebooting I endet up at the Mi logo with a small progress bar (not the 3 dots!!) . The factory reset fails because nothing happens when the bar is full (I let the phone work for about 2 hours). When I reboot I always get the same progress-bar but it crashes within the first third and then reboots again.
I read this forum and installed "MiFlash", downloaded the latest firmware from Xiaomi, named "Redmi Note 4 Qualcomm Latest Global Stable Version Fastboot File Download" and tried to flash it. The flashing only takes about 1 second saying everything went fine, but the log says the following:
Code:
[0,00 b346e0dc0304]:image path:C:\firmware2
[0,00 b346e0dc0304]:env android path:C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android
[0,00 b346e0dc0304]:script :C:\firmware2\flash_all_lock.bat
[0,01 b346e0dc0304]:Physical Memory Usage:1728512 Byte
[0,08 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>"C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar product 2>&1 | findstr /r /c:"^product: *MSM8953" || "C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar product 2>&1 | findstr /r /c:"^product: *mido" || echo Missmatching image and device
[0,14 b346e0dc0304]:product: mido
[0,14 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>"C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar product 2>&1 | findstr /r /c:"^product: *MSM8953" || "C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar product 2>&1 | findstr /r /c:"^product: *mido" || exit /B 1
[0,20 b346e0dc0304]:product: mido
[0,20 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>rem "C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 erase bk12 2>&1
[0,20 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>if not 0 == 0 exit /B 1
[0,20 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>rem "C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar soc_id 2>&1 | findstr /r /c:"^soc_id: *239" || echo Missmatching image and device in soc_id
[0,20 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>rem "C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar soc_id 2>&1 | findstr /r /c:"^soc_id: *239" || exit /B 1
[0,20 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>"C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 oem device-info 2>&1 | findstr /r /c:"Device unlocked: true" || echo Device oem locked
[0,28 b346e0dc0304]:Device oem locked
[0,28 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>"C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 oem device-info 2>&1 | findstr /r /c:"Device unlocked: true" || exit /B 1
[0,36 b346e0dc0304]:process exit.
[0,36 b346e0dc0304]:flash done
I figured I downloaded the wrong image, so i tried with "Redmi 4X Latest Global Stable Version Fastboot File Download" but it gave me the same positive information within MiFlash interface but the log stated the same.
So I tried with the Mediatek "Nikel" version, now MiFlash tells me right from the beginning, red light, that my image is wrong and the log looks like this:
Code:
[0,00 b346e0dc0304]:image path:L:\Downloads\nikel_update
[0,00 b346e0dc0304]:env android path:C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android
[0,00 b346e0dc0304]:script :L:\Downloads\nikel_update\flash_all_lock.bat
[0,01 b346e0dc0304]:Physical Memory Usage:1953792 Byte
[0,07 b346e0dc0304]:C:\XiaoMi\XiaoMiFlash>"C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s b346e0dc0304 getvar product 2>&1 | findstr /r /c:"^product: nikel" ||
[0,11 b346e0dc0304]:Missmatching image and device error
[0,11 b346e0dc0304]:process exit.
[0,11 b346e0dc0304]:error:Missmatching image and device error
Maybe there is an error with MiFlash itself? I installed all drivers, I run windows with unsigned drivers in test mode.
Bottom Line:
Can you help me to just reset my device and make it usable again? THANK YOU SO MUCH!!!
Click to expand...
Click to collapse
First of all, never ever flash images or roms not made for your chipset, (Mediatek and snapdragon are like two poles of earth)
Secondly, are you able to boot in fastboot mode?
To check this press and hold power and volume down until a logo saying fastboot mode appears.
REPLY ASAP

MyNameIsRage said:
Dear Community,
please follow my humble plea and help me getting my Xiaomi Redmi Note 4 Mido "SnapDragon" Global working again.
My device is on stock rom, bootloader LOCKED and no root.
What happened?
I updated to version V9.0.3.0.NCFMIEI without any problems.
Now the updater app tells me to upgrade to the latest version Version: V9.0.5.0.NCFMIEI (MIUI9).
The Update-App tells me that the update is only 52MB of size, I downloaded it and when I reboot the device the stock recovery tells me that "Update.zip failed to install".
Then I reboot back into the system and now the Updater-App tells me the update was 1,3Gbyte of size. When I try to download and install it, it always says that "the source could not be verified" and "not allowed to update to custom roms".
I tried this multiple times over the last weeks, nothing ever changed.
Bad thing is, I started to get random shutdowns and reboots during daily usage.
My thinking was I should factory reset the device. I backed up all data and used the android feature from settings to factory restet. When rebooting I endet up at the Mi logo with a small progress bar (not the 3 dots!!) . The factory reset fails because nothing happens when the bar is full (I let the phone work for about 2 hours). When I reboot I always get the same progress-bar but it crashes within the first third and then reboots again.
I read this forum and installed "MiFlash", downloaded the latest firmware from Xiaomi, named "Redmi Note 4 Qualcomm Latest Global Stable Version Fastboot File Download" and tried to flash it. The flashing only takes about 1 second saying everything went fine, but the log says the following:
I figured I downloaded the wrong image, so i tried with "Redmi 4X Latest Global Stable Version Fastboot File Download" but it gave me the same positive information within MiFlash interface but the log stated the same.
So I tried with the Mediatek "Nikel" version, now MiFlash tells me right from the beginning, red light, that my image is wrong and the log looks like this:
First of all, never ever flash images or roms not made for your chipset, (Mediatek and snapdragon are like two poles of earth)
Secondly, are you able to boot in fastboot mode?
To check this press and hold power and volume down until a logo saying fastboot mode appears.
REPLY ASAP
Click to expand...
Click to collapse
Thanks for your reply.
I decided to unlock BL and flashed the original stock ROM via fastboot method and MiFlash. After installing twrp and wiping dalvik and cache everything runs fine now.
No crashes no reboots since then.
Sorry for everyone but seems there is no easier method then unlocking BL

edwardenglish said:
Thanks for your reply.
I decided to unlock BL and flashed the original stock ROM via fastboot method and MiFlash. After installing twrp and wiping dalvik and cache everything runs fine now.
No crashes no reboots since then.
Sorry for everyone but seems there is no easier method then unlocking BL
Click to expand...
Click to collapse
Yes that was actually the *only* thing you could've done to restore.

I have the same/similar problem, but also are the 3 screen buttons flashing in a diverent frequency. I tryed to flash with mi flash and I tryed the point methode. No responce! No bootloader is staring. Is there some body who has or had the same problem? Hope you can help me....
Verstuurd vanaf mijn MI 6 met Tapatalk

patrickharpa said:
I have the same/similar problem, but also are the 3 screen buttons flashing in a diverent frequency. I tryed to flash with mi flash and I tryed the point methode. No responce! No bootloader is staring. Is there some body who has or had the same problem? Hope you can help me....
Verstuurd vanaf mijn MI 6 met Tapatalk
Click to expand...
Click to collapse
I have the same Problem like you. I tryed also the Testpoint Methode and flash with MiFlash any Fastboot-Roms - No Chance the Bootloop is always there.
Ist the anybody who help us?
greetings Chris

Related

Boot problem, Redmi pro

Hello, last week buy the Redmi Pro 4G 3GB ram and x25 from MTK,
Today, the device does not boot, does not pass the boot,
I've tried flashing with the fastboot, but it gives me error everything I do, it tells me that all partitions are not allowed
I've tried all the existing tutorials, with SP FLASH TOOL and MIFLASH, NOTHING!
I'm desperate.
I want to clarify the following: I can not access the system, I can not enable debugging USB, it is all factory, without root.
LOG:
Code:
[0,01 BYTO6DNZHM6TLZOF]:image path:C:\mi
[0,01 BYTO6DNZHM6TLZOF]:env android path:C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android
[0,01 BYTO6DNZHM6TLZOF]:script :C:\mi\flash_all.bat
[0,02 BYTO6DNZHM6TLZOF]:Physical Memory Usage:2023424 Byte
[0,03 BYTO6DNZHM6TLZOF]:C:\XiaoMi\XiaoMiFlash>"C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s BYTO6DNZHM6TLZOF getvar product 2>&1 | findstr /r /c:"^product: omega" ||
[0,04 BYTO6DNZHM6TLZOF]:product: omega
[0,04 BYTO6DNZHM6TLZOF]:C:\XiaoMi\XiaoMiFlash>"C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s BYTO6DNZHM6TLZOF getvar product 2>&1 | findstr /r /c:"^product: omega" || exit /B 1
[0,05 BYTO6DNZHM6TLZOF]:product: omega
[0,05 BYTO6DNZHM6TLZOF]:C:\XiaoMi\XiaoMiFlash>"C:\XiaoMi\XiaoMiFlash\Source\ThirdParty\Google\Android\fastboot.exe" -s BYTO6DNZHM6TLZOF flash boot C:\mi\images\boot.img ||
[0,51 BYTO6DNZHM6TLZOF]:target reported max download size of 134217728 bytes
[0,51 BYTO6DNZHM6TLZOF]:sending 'boot' (10396 KB)...
[0,51 BYTO6DNZHM6TLZOF]:eek:KAY [ 0.439s]
[0,51 BYTO6DNZHM6TLZOF]:writing 'boot'...
[0,52 BYTO6DNZHM6TLZOF]:process exit.
[0,52 BYTO6DNZHM6TLZOF]:error:FAILED (remote: download for partition 'boot' is not allowed
I had much trouble flashing the stock rom, too.
This tutorial worked for my issue youtube. com/watch?v=-CuMZzdEQg8 (delete spaces for url)
basically the problem was the "cust.img" file from the stock rom (too large I think), replacing it with the cust.img from the video worked fine for me.
Hope it helps you too
raber102 said:
I had much trouble flashing the stock rom, too.
This tutorial worked for my issue youtube. com/watch?v=-CuMZzdEQg8 (delete spaces for url)
basically the problem was the "cust.img" file from the stock rom (too large I think), replacing it with the cust.img from the video worked fine for me.
Hope it helps you too
Click to expand...
Click to collapse
It's not working for me.

Howto update Baseband (Modem blob) on custom ROM?

!!! Never mind found it out myself, sorry for the noise !!!
Hello,
I'm currently on LOS 15.1 and would like to update the Baseband. Could someone lay out how I extract the neccessary files from fastboot image and how to flash it (I guess with fastboot)?
Thx in advance
Mind telling how you went about to do it?
fastboot %* getvar product 2>&1 | findstr /r /c:"^product: *tissot" || @ECHO "error : Missmatching image and device" & exit /B 1
fastboot %* oem unlock || @ECHO "unlock error" & exit /B 1
fastboot %* flash modem_a %~dp0images\modem.img || @ECHO "Flash modem_a error" && exit /B 1
fastboot %* flash modem_b %~dp0images\modem.img || @ECHO "Flash modem_b error" && exit /B 1
fastboot %* set_active a
fastboot %* reboot

Honor 7x Knowledge base

Before we start :
all credit goes to the following users for their amazing work and guides : olddroid, Sudeep, Eduardo Alonso and mrmazak
Honor 7x Knowledge base :
A – Unlocking your bootloader and getting ready to flash custom roms :
Alright we got 2 states in order to do this :
1- if your phone is fully working (Not soft bricked) :
You need the following things:
Device model:
Serial number:
IMEI:
Product ID - dialing *#*#1357946#*#*.
2 – If your phone is soft bricked and you only know your Imei number you can use this site to give you full info :
https://imei24.com/imei_check/Huawei/
Lastly , Submit this info in the google form and you should get your code within a day or less
https://docs.google.com/forms/d/e/1...YnBcAxAbz9SAVxPTFqMh9g/viewform?usp=send_form
B – Unbricking your phone :
1 – Knowing your model number:
Below are the model numbers for 7X
BND-L21C432 (Europe), BND-L21C185 (Middle East), BND-AL10C675 (India), BND-AL (TL) 10C00 (China), BND-L21C10 (Russia)
[–COLOR="lime"] Finding the right update package through firmware finder :
[/COLOR]1 – Visit the link http://pro-teammt.ru/firmware-database/?firmware_model=BND&firmware_page=1
2 – Find the right model as listed above (For nougat update will be called the same as the model number provided in Step 1 in section B)
3 – Make sure the update package type is Full-Ota
4 – since oreo , they don’t list the region, the best way to know if the update is compatible is by using this method : click on the file list , the second file would have some codes that I will explain
update_full_BND-l21_xxx.zip (the first part changes depends on the model)
If the code was _eu = it’s for the Eu version
If the code was _usa= American version
If the code was _in= India
Mefanf (or something like that ) = middle east, you get the idea by now
C- Flashing the update zips :
Alright this is the part where most users have errors so let’s try to make it simple
1 - For nougat with update zips
You need 5 main things in order to do that and they are :
BND-RECOVERY-NoCheck.img <download here
update.zip < from firmware finder
update_data_full_public.zip < from firmware finder
update_full_xxxxx.zip <from firmware founder
twrp for nougat < download here
4 gb sd
How to :
1 – Flash the nougat twrp
2 – copy update.zip , update_data_full_public_zip , update_full_xxxx (name changes depending on region and model) and BND-Recovery-NoCheck.img
3 – boot into twrp , plugin the phone via usb , open a command prompt on your pc
4 – type adb shell , press enter then copy paste these commands :
dd if=/external_sd/BND-RECOVERY-NoCheck.img of=/dev/block/bootdevice/by-name/recovery
dd if=/external_sd/BND-RECOVERY-NoCheck.img of=/dev/block/bootdevice/by-name/recovery2
echo --update_package=/sdcard/update.zip > /cache/recovery/command
echo --update_package=/sdcard/update_data_full_public.zip >> /cache/recovery/command
echo --update_package=/sdcard/update_full_xxxxx.zip >> /cache/recovery/command
reboot recovery
after that your phone will reboot and it will start updating
note : if adb shell doesn’t work , go to twrp >> advanced , terminal and type them manually
note: when you paste the echo commands they don’t show any output , that’s perfectly normal
2 – For nougat without update zips:
You also need :
BND-ReocveryNocheck.img
Twrp for Nougat
Sd card 4gb
Boot.img
Cust.img
System.img
Vendor.img
Version.img
Product.img
How to :
1 – Copy Product.img, Vendor.img, Version.img , cust.img to the root of your sd card
2 – copy paste the following commands via adb shell or the terminal in twrp
dd if=/external_sd/product.img of=/dev/block/mmcblk0p48
dd if=/external_sd/vendor.img of=/dev/block/mmcblk0p47
dd if=/external_sd/version.img of=/dev/block/mmcblk0p46
dd if=/external_sd/cust.img of=/dev/block/mmcblk0p45
3 – reboot to bootloader , flash boot and system images and everything should work fine
For Oreo with zip it’s the same steps like Nougat with zips but you just need a different recovery called
RecoveryNoCheckOreoHi6250 and twrp ramdisk
note : to flash twrp on oreo use this command
fastboot flash recovery_ramdisk imgnamehere.img
they can be found here
I like to try and Turn these monotonous repetitive things into tools.Mainly because one simple typo in the process can make it difficult to repair.
So I am in the process of making such a tool.
As a starting point I have made simple coding to do the recovery install part.
For now there are two batch programs , one for nougat , and one for oreo.
I am working toward some crafty line of code that can determine what build is on your devices first and according to the result choose which of the two batches to run.
In the meantime here are the two recovery switching batches. with recovery images included that have been copied from the xda forum.
Code:
@echo off
title Lazy Recovery Replace Oreo
adb shell getprop ro.build.version.emui > %~dp0\version-info.txt
for /f %%i in ('FINDSTR "EmotionUI_" %~dp0\version-info.txt') do set emui=%%i
echo %emui%
set str=%emui:~10%
echo.%str%
pause
if %str% lss 5.3 (goto nougat
)else (
echo ok to continue)
adb reboot bootloader
echo Wait Here untill fastboot mode Loads On Phone
SET PATH=%PATH%;"%~dp0\files\oreo"
pause
fastboot oem get-build-number 2> %~dp0\build-info.txt
for /f "tokens=2" %%i in ('findstr "^(bootloader)" "%~dp0\build-info.txt"') do set Device=%%i
for /f "tokens=3" %%i in ('findstr "^(bootloader)" "%~dp0\build-info.txt"') do set Build=%%i
echo Your Current Device is = %Device% %Build%
pause
:MAIN
cls
echo Choose what you need to work on.
echo(
echo %Device% %Build%
echo ][************************************][
echo ][ 1. complete_twrp_ramdisk ][
echo ][************************************][
echo ][ 2. Oreo Stock from beta ][
echo ][************************************][
echo ][ 3. twrp_p10_lite_0.3 Encryt works ][
echo ][************************************][
echo ][ 4. Oreo No-Check ][
echo ][************************************][
echo ][ 5. Local Image ][
echo ][************************************][
echo ][ 6. Cancel Exit and Reboot ][
echo ][************************************][
echo(
echo For performing Update simplest option is choose #1
set /p env=Type your option [1,2,3,4,5,6] then press ENTER: || set env="0"
if /I %env%==1 set recovery=complete_twrp_ramdisk.img && goto flash
if /I %env%==2 set recovery=RECOVERY_RAMDIS.img && goto flash
if /I %env%==3 set recovery=twrp_p10_lite_0.3.img && goto flash
if /I %env%==4 set recovery=RecoveryNoCheckOreoHi6250.img && goto flash
if /I %env%==5 call scripts\oreo\oreo_local_image_select.bat || goto end
if /I %env%==6 fastboot reboot && goto :eof
echo(
echo %env% is not a valid option. Please try again!
PING -n 3 127.0.0.1>nul
goto MAIN
:flash
echo THE FOLLOWING FILE HAS BEEN SELECTED
echo %recovery%
echo Continue IF it is correct, Else close window to cancel
pause
fastboot flash recovery_ramdisk %recovery%
:end
echo RECOVERY SHOULD NOW BE FLASHED
echo GET READY TO PULL USB PLUG OUT AND HOLD VOLUME UP
echo RIGHT AFTER YOU PRESS BUTTON TO CONTINUE
pause
fastboot reboot
goto :eof
exit
:nougat
echo You are On NOUGAT DO NOT USE THIS
pause
exit
Code:
@echo off
title Lazy Recovery Replace Nougat
adb shell getprop ro.build.version.emui > %~dp0\version-info.txt
for /f %%i in ('FINDSTR "EmotionUI_" %~dp0\version-info.txt') do set emui=%%i
echo %emui%
set str=%emui:~10%
echo.%str%
pause
if %str% gtr 5.2 (goto oreo
)else (
echo ok to continue)
adb reboot bootloader
echo Wait Here untill fastboot mode Loads On Phone
SET PATH=%PATH%;"%~dp0\files\oreo"
pause
fastboot oem get-build-number 2> %~dp0\build-info.txt
for /f "tokens=2" %%i in ('findstr "^(bootloader)" "%~dp0\build-info.txt"') do set Device=%%i
for /f "tokens=3" %%i in ('findstr "^(bootloader)" "%~dp0\build-info.txt"') do set Build=%%i
echo Your Current Device is = %Device% %Build%
pause
:MAIN
cls
echo Choose what you need to work on.
echo(
echo %Device% %Build%
echo ][************************************][
echo ][ 1. twrp-honor ][
echo ][************************************][
echo ][ 2. Stock Recovery ][
echo ][************************************][
echo ][ 3. Stock Recovery 2 ][
echo ][************************************][
echo ][ 4. BND-NO-CHECK ][
echo ][************************************][
echo ][ 5. Other file from your PC ][
echo ][************************************][
echo ][ 6. Cancel Exit and Reboot ][
echo ][************************************][
echo(
set /p env=Type your option [1,2,3,4,5,6] then press ENTER: || set env="0"
if /I %env%==1 set recovery=twrp-honor.img && goto flash
if /I %env%==2 set recovery=recovery.img && goto flash
if /I %env%==3 set recovery=recovery2.img && goto flash2
if /I %env%==4 set recovery=BND-RECOVERY-NoCheck.img && goto flash
if /I %env%==5 call scripts\nougat\nougat_recovery_file_flash.bat || goto end
if /I %env%==6 fastboot reboot && goto :eof
echo(
echo %env% is not a valid option. Please try again!
PING -n 3 127.0.0.1>nul
goto MAIN
:flash
echo THE FOLLOWING FILE HAS BEEN SELECTED
echo %recovery%
echo Continue IF it is correct, Else close window to cancel
pause
fastboot flash recovery %recovery%
goto end
:flash2
echo THE FOLLOWING FILE HAS BEEN SELECTED
echo %recovery%
echo Continue IF it is correct, Else close window to cancel
fastboot flash recovery2 %recovery%
:end
echo RECOVERY SHOULD NOW BE FLASHED
echo GET READY TO PULL USB PLUG OUT AND HOLD VOLUME UP
echo RIGHT AFTER YOU PRESS BUTTON TO CONTINUE
pause
fastboot reboot
goto :eof
exit
:oreo
echo You are On OREO DO NOT USE THIS
pause
exit
I have the launcher batch ready, it will detect the emui version with getprop. And call the appropriate switcher batch.
Code:
@echo off
if not defined in_subprocess (cmd /k set in_subprocess=y ^& %0 %*) & exit )
title Lazy Recovery Auto Launcher
echo Waiting For device to be recognized by ADB
adb wait-for-device
adb shell getprop ro.build.version.emui > %~dp0\version-info.txt
for /f %%i in ('FINDSTR "EmotionUI_" %~dp0\version-info.txt') do set emui=%%i
echo %emui%
set str=%emui:~10%
echo.%str%
pause
if %str% equ 8 call scripts\oreo\Oreo_lazy_Recovery.bat
if %str% equ 8.1 call scripts\oreo\Oreo_lazy_Recovery.bat
if %str% equ 5 call scripts\nougat\Nougat_lazy_Recovery.bat
if %str% equ 5.1 call scripts\nougat\Nougat_lazy_Recovery.bat
pause
exit
Updated 5-21
Tool Download
.

Can only boot into recovery and bootloader after a magisk update

So this is a fun one.
I had my devices loaded with magisk. Everything was fine till a recent update for magisk (I believe v18.0.0). The apk downloaded and then it needed to flash the update. I selected the option with the tag 'recommended' next to it and then it booted straight to the boot loader. I'm able to connect and control through fashboot or recovery but nothing I seem to do fixes it. I saw a twrp image available so I booted to that (not flashed over the current recovery) and did a factory reset and nothing. Also tried a factory reset from stock recovery. Still same story. I'm downloading the latest firmware from the offical asus site with the idea to flash it through recovery but if anyone can suggest anything else before or if it is to fail that would be great.
Helpful info
Model: WW International (A002)
Bootloader displays the following:
Product_name - Siva
Storage_variant - UFS
Bootloader version - 1.23
Version - WW_ZS571KL-14.1600.1801.44
Serial Number - 'this is blank'
Secure boot - enabled
Device state - unlocked
Updates
Update 1:
So I reflashed the original zip firmware with twrp. Now I'm stuck at the asus logo.
Update 2:
I tried again with flashing the original zip firmware. This firmware is provided by the asus website but when I did a full wipe and flash in twrp, when attempting to reboot it said that there was no os installed so turns out the zip files are just updates and not the whole image. I've found an image here but have yet to test it. Fingers crossed it doesn't include a rootkit.
Update 3:
Well this is new (at least for me)... So I downloaded the zip from the link in the second update and instead of a single rom file I got a bunch of img and bin files. It said to use the 'qualcomm flash image loader' sooooo yeah. I loaded up the program (in a vm since im running on osx) and the files it asks for in all available options don't exist in the firmware folder. On the bright side there seems to be valuable files in the firmware folder like the 'system.img'. After trying to deconstruct the type of rom structure is being used (with reference to this) I copied over the offical update zip from the asus site and the 'system.img' from third-party site. I'll wipe and flash both then update what happens.
Update 3.5:
As a side note, if I manage to get this to work I'll post a guide with relevant files to restore to stock from this state.
Update 4:
SUCSESS! I flashed the update zip from asus using twrp and flashed the 'system.img' using fastboot. I'm now seeing a beautiful spinning wheel. After more digging into the firmware folder from the third-pary there was an sh file which flashed many files to the device with fastboot. Currently setting up the device but will update if there's any major issues/crashes/bugs
Update 4.1:
So not even a second in and wifi doesn't work. Probably need to flash a few more images. Gonna flashing everything from fastboot this time round.
Update 4.5:
So to give some context, here is the '.sh' file that came with the third-party firmware.
Code:
#!/bin/bash
#./fastboot getvar version-bootloader
STORAGE_TYPE=unknown
uname -a
OS_VERSION=`getconf LONG_BIT`
if [ "$OS_VERSION" == 32 ]; then
echo "We don't support 32bit os environment, exit!"; exit 1
fi
rm fastboot.log
echo "Saving log to fastboot.log"
echo "flash partition:0 gpt_both0.bin..."
./fastboot flash partition:0 gpt_both0.bin > fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "flash partition:1 gpt_both1.bin..."
./fastboot flash partition:1 gpt_both1.bin > fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "flash partition:2 gpt_both2.bin..."
./fastboot flash partition:2 gpt_both2.bin > fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "flash partition:3 gpt_both3.bin..."
./fastboot flash partition:3 gpt_both3.bin > fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "flash partition:4 gpt_both4.bin..."
./fastboot flash partition:4 gpt_both4.bin > fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "flash partition:5 gpt_both5.bin..."
./fastboot flash partition:5 gpt_both5.bin > fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "flash bootloader bootloader.img ..."
./fastboot flash bootloader bootloader.img > fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "flash dsp adspso.bin..."
./fastboot flash dsp adspso.bin >> fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "flash mdtp mdtp.img..."
./fastboot flash mdtp mdtp.img >> fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "flash splash splash.img..."
./fastboot flash splash splash.img >> fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "flash asusfw asusfw.img..."
./fastboot flash asusfw asusfw.img >> fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "reboot-bootloader..."
./fastboot reboot-bootloader >> fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "wait for 5 seconds for bootloader to be ready..."
sleep 5
echo "flash modem NON-HLOS.bin..."
./fastboot flash modem NON-HLOS.bin >> fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "flash boot boot.img..."
./fastboot flash boot boot.img >> fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "flash recovery recovery.img..."
./fastboot flash recovery recovery.img >> fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "flash system system.img..."
./fastboot flash system system.img >> fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "format ADF..."
./fastboot format ADF >> fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "format asdf..."
./fastboot format asdf >> fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
echo "format metatdata..."
./fastboot erase metadata >> fastboot.log 2>&1
grep -E 'FAILED|error' fastboot.log
RETVAL=$?
if [ $RETVAL -eq 0 ];then
echo 'failed and exit'; exit 1
fi
./fastboot oem uart-off
./fastboot reboot -w
I'm not gonna use the script since there's a few things here and there I wanna change as well as input the most up to date images where possible.
Update 5:
Back at square 1... kinda. I'm gonna try and flash files only from the third-party provider this time. Also no twrp since I tried installing twrp and then tried to do a factory reset. Also to the guys that 'ported' twrp it really only works to wipe things and view root directories (at least in my experience) .
Update 6:
I think I'm gonna cry I'm so happy. After pulling an all nighter I now have wifi and a bootable phone! I'm gonna set it up and hopefully be able to go to sleep while google re-downloads all my apps.
Update 6.1:
So I'll post the whole process to restore in the next post but I've been awake for almost 30 hours so another time it will be. Also I learnt my lesson to make NAND backups from now on.
Update 7:
After a short time of use, the device slowed a bit. This could have been cause of anything but I decided a reboot would resolve the issue but instead revealed another. The device was once again stuck at the asus logo. I quickly tried re-flashing some of the files without doing a full wipe in the hope I would be able to keep my data but nothing. I've sent an email to ASUS asking for a full stock rom but am doubtful I will get any files back so I'll keep looking for solutions.
Update 8:
Okay, I think I've finally got this down. So I redid a full wipe and reset through fastboot. As soon as I got into the device I did a factory reset. This must have done something which allowed me to later reboot the device without it getting stuck. Considering how much I've added on this thread I'll create a new thread as a guide to complete this
Guide
Hey! I would really appreciate it if you could add a guide cause I'm a newbie on android.
DrunkenPoney said:
Hey! I would really appreciate it if you could add a guide cause I'm a newbie on android.
Click to expand...
Click to collapse
Sorry but it's gonna have to wait. For some reason when I tried to reboot it, it got stuck at the logo again so back at square 1.
@Sparklapse
stock roms are available on asus support homepage.
see here: https://www.asus.com/us/Phone/ZenFone-AR-ZS571KL/HelpDesk_BIOS/
latest version is: https://dlcdnets.asus.com/pub/ASUS/ZenFone/ZS571KL/UL-ASUS_A002-WW-14.1600.1805.51-user.zip
HD2Owner said:
@Sparklapse
stock roms are available on asus support homepage.
see here: https://www.asus.com/us/Phone/ZenFone-AR-ZS571KL/HelpDesk_BIOS/
latest version is: https://dlcdnets.asus.com/pub/ASUS/ZenFone/ZS571KL/UL-ASUS_A002-WW-14.1600.1805.51-user.zip
Click to expand...
Click to collapse
Unless I've been flashing it incorrectly, I believe these are only firmware updates. When looking into the package it's missing certain images like the 'system.img' and 'recovery.img'. Though I'd be more than happy for you to prove me wrong here.
Solution??
Did you find any solution??
Hi to all and OP
I know this is a longshot but I'm almost in the same position as yourself, you mentioned that you used TWRP for your revival attempts. unfortunately my AR bootloader is locked so I was wondering how you managed to unlock yours to use a custom recovery?, for all I know the only way is with the Asus app but I think it has been removed from the site. any chance you have a copy of the unlock apk? or maybe you can point to he TWRP img version you used?
Thanks in advance for any info you can share.

[locked bootloader] Bootloop on stock firmware, cannot access EDL mode... Any tips?

Hi guys,
I have a Mi 9T (DaVinci, model M1903F10G) which is in a bootloop state. Sometimes, the boot "succeeds" and shows an empty android screen with navigation buttons (below) and navigation bar (top), but touching the screen/buttons does not do anything, and after a few seconds the phone reboots again. Within the seconds that it is in the android screen, it also shows up as a MTP device in Windows Explorer, but the drive is empty and trying to copy anything to it gives an error. At other times, the phone does not even reach this Android screen.
I can reach the official bootloader and also fastboot. In both cases, phone is recognized by ADB (but no debug access...)
BTW, I bought the phone in this state to try and fix it, so I do not know how or when the problems started. I tried a lot of things to get it back to working:
1) I tried to reflash stock images via MiFlash, but since my bootloader is locked (and I cannot unlock it because I cannot get into MIUI to link my account to this phone) I get the error: FAILED (remote: Erase is not allowed in Lock State) (MiFLash log below)
Code:
NOTE: ALL SERIAL NUMBERS REMOVED AND REPLCAED BY ########
[21:31:08 3a143982]:MiFlash 2019.10.30.0
[21:31:08 3a143982]:idproduct: 53261 idvendor: 6353
[21:31:08 3a143982]:Thread id:11 Thread name:########
[21:31:08 3a143982]:image path:C:\Users\Jochem\Downloads\Xiaomi_Mi_9T_V11.0.1.0.PFJMIXM_20191028.0000.00_Global_9.0\Firmware
[21:31:08 3a143982]:env android path:"C:\Users\Jochem\Downloads\MiFlash20191030\MiFlash20191030\Source\ThirdParty\Google\Android"
[21:31:08 3a143982]:script :C:\Users\Jochem\Downloads\Xiaomi_Mi_9T_V11.0.1.0.PFJMIXM_20191028.0000.00_Global_9.0\Firmware\flash_all.bat
[21:31:08 3a143982]:Physical Memory Usage:2174976 Byte
[21:31:08 3a143982]:start process id 13812 name cmd
[21:31:09 3a143982]:info:$if exist C:\Users\Jochem\Downloads\Xiaomi_Mi_9T_V11.0.1.0.PFJMIXM_20191028.0000.00_Global_9.0\Firmware\images\anti_version.txt (for /F "delims==" %a in (C:\Users\Jochem\Downloads\Xiaomi_Mi_9T_V11.0.1.0.PFJMIXM_20191028.0000.00_Global_9.0\Firmware\images\anti_version.txt) do (set CURRENT_ANTI_VER=%a ) )
[21:31:09 3a143982]:info:$(set CURRENT_ANTI_VER=1 )
[21:31:09 3a143982]:info:$if [1] EQU [] set CURRENT_ANTI_VER=0
[21:31:09 3a143982]:info:$for /F "tokens=2 delims=: " %i in ('fastboot -s ######## getvar anti 2>&1 | findstr /r /c:"anti:"') do (set version=%i )
[21:31:09 3a143982]:info:$(set version=1 )
[21:31:09 3a143982]:info:$if [1] EQU [] set version=0
[21:31:09 3a143982]:info:$set anticheck="antirollback check pass"
[21:31:09 3a143982]:info:$if 1 GTR 1 set anticheck="Current device antirollback version is greater than this pakcage"
[21:31:09 3a143982]:info:$echo "antirollback check pass" | findstr /r /c:"pass" ||
[21:31:09 3a143982]:info:"antirollback check pass"
[21:31:09 3a143982]:info:$fastboot -s ######## getvar product 2>&1 | findstr /r /c:"^product: *davinci" || echo Missmatching image and device
[21:31:09 3a143982]:info:product: davinci
[21:31:09 3a143982]:info:$fastboot -s ######## getvar product 2>&1 | findstr /r /c:"^product: *davinci" || exit /B 1
[21:31:09 3a143982]:info:product: davinci
[21:31:09 3a143982]:info:$fastboot -s 3a143982 erase boot ||
[21:31:09 3a143982]:err:Erasing 'boot'...
[21:31:09 3a143982]:info:"Erase boot error"
[21:31:09 3a143982]:err:FAILED (remote: Erase is not allowed in Lock State)
[21:31:09 3a143982]:err:Finished. Total time: -0.000s
[21:31:09 3a143982]:error:"Erase boot error"
[21:31:09 3a143982]:process exit.
[21:31:09 3a143982]:flashSuccess False
[21:31:09 3a143982]:isFactory False CheckCPUID False
[21:31:09 3a143982]:before:flashSuccess is False set IsUpdate:True set IsDone True
[21:31:09 3a143982]:after:flashSuccess is False set IsUpdate:false set IsDone true
2) I tried to go into the official recovery mode and then reflash the original firmware (http://c.mi.com//miuidownload/detail?device=1700361) via MiPhoneAssistantBeta3.0. The reflashing procedure starts, goes to around 70% (on the device)/ 99% (on the computer) and then (within a second) jumps to a 100% on both device and computer. The device automatically restarts into the same state as before. The computer shows a green arrow with some chinese characters, so I guess it completed? However, the device is still in the same bootloop state after this. I tried this procedure with the Global Mi 9T rom, in which case the MiPhoneAssistant checks the firmware and says its okay. I also tried to do this procedure with the EEA (Europe) rom or the Russian ROM, in which case the MiPhoneAssistant checks the firmware and says it is not recognized. I do not know what the original firmware was, but I suspect it to be Europe or Global. Could this check failure mean that my phone can only take Global rom?
3) I noticed the phone is in sideload mode when I use the Mi Assistant option in the bootloader (as done above), so I tried to adb sideload an origianal rom package, but as soon as I give the command in adb, the phone reboots.
3) I tried to acces EDL mode by connecting disconnecting the battery, connecting the two EDL pins to each other (these https://postimg.cc/jCr3ZVs2) and then inserting the USB cable. However, my computer does not seem to recognize anything, and the device start blinking a Blue LED in the camera pop up (the one which normally shows charging). If i do not do anything with the EDL pins and then insert the USB cable (with battery disconnected), the blue led also starts to blink, so it looks as if this is some standard behaviour? Does anyone know if the phone should also blink when it is in EDL mode?
I must say that I have a laptop with only USB-c ports, so I connected the USB cable via a usb hub to my computer. I also tried to do the same procedure on an old (very slow) computer with USB 2.0 ports, but there again nothing seems to show up in Device Manager if I connect the device.
Is it correct that the device should at least show up (with whatever name) if I do not have the driver installed?
4) I tried to unlock the phone, but cannot because the phone is not linked to my Mi Account.
With that, I have tried all my ideas and was wondering if anyone knows how to get into EDL mode with this device, or if it is maybe nog possible at all (hardware error?) Or if anyone has another idea to get it back working?
Any help appreciated!
TTYL:
- phone in bootloop
- I can reach fastboot, bootloader and recovery (all official)
- tried flashing official firmware via miflash, not allowed because locked bootloader
- tried flashing official firmware via MiPhoneAssistantBeta3.0, flashing procedure seems to succeed, but phone has same problems afterwards
- tried to get into EDL mode, but cannot get into this mode
Any tips on what to try, or how to get into EDL mode?
Thanks!

Categories

Resources