Need some help with the TWRP recovery! Flashing errors - Xiaomi Mi 4i

Hi,
So I have TWRP from the toolkit. And I previously had Mokee latest, then I switched to MIUI7 5.11.14(latest).
Now I downloaded Resurrection Remix, and before flashing it I tried to flash MIUI V6.6.10.0.LXIMICF, which failed spectacularly displaying the error below:
mount : failed to mount /dev/block//bootdevice/by-name/userdata at /data : Device or resource busy.
mount : failed to mount /dev/block//bootdevice/by-name/system at /system: Device or resource busy.
the updater script failed to execute
This happens with me quite often when I try to switch between MIUI and CM based ROMs.
And I dunno how this happens but I keep trying to flash MIUI and then reboot if it fails and then wipe "Cache, data, dalvik cache, system" again and flash MIUI again, and sometimes it takes 2-3 tries and it flashes., the script succeeds.
The same happened today
-had MIUI 5.11.14, rebooted to recovery(TWRP)
-wiped [system, data, dalvik cache, cache]
-tried to flash MIUI 6.6.10, it failed
-tried to flash RR, it succeeded but the ROM acted weirdly. The screen would turn off and the phone won't respond. So no luck
-rebooted wiped [system, data, dalvik cache, cache]
-tried to flash MIUI 6.6.10, it failed
-rebooted and factory reset performed. Tried to flash MIUI 6.6.10, it failed
-rebooted again and factory reset performed. flashed MIUI successfully, then performed factory reset, and flashed RR, and successfully booted up the ROM. Finally
This type of flash failure is not limited to the 6.6.10, it happens with 6.7.2 and also 5.8.11(dev version)
Can someone tell me why this happens, and does it happen on everyone's Mi4i? Or am I doing something wrong?
I know its long but I had to explain what I did properly.

Friend, same situation here!
I have my mi4i since august and i try every custom and official/developer rom. Every time i try a rom i have the same problems as you. I never posted because i thought i m doing something wrong but i am very experienced guy, doing such stuff many years, and i couldn't beleave that. Btw, i have the same strange behavior from twrp & flashing roms on my mi4i, and i can't understand what's wrong...

anurox2 said:
Hi,
mount : failed to mount /dev/block//bootdevice/by-name/userdata at /data : Device or resource busy.
mount : failed to mount /dev/block//bootdevice/by-name/system at /system: Device or resource busy.
the updater script failed to execute
Click to expand...
Click to collapse
Thats because you tried to flash miui recovery rom using TWRP. You must flash miui rom with miui stock recovery only. This is why I highly recommended people who wants to try custom ROM to only 'fastboot boot twrp.img' rather than installing it permanently because you can easily flash the miui stock rom again next time u want to back to miui rom.
Unlike twrp, miui 6 recovery is not the same with miui 7. If you tried to flash stock recovery using fastboot flash recovery for different version of miui, it will not work.
Unless you prefer to stay under custom ROM, I highly recommend that you keep your stock recovery intact.

yumm91 said:
Thats because you tried to flash miui recovery rom using TWRP. You must flash miui rom with miui stock recovery only. This is why I highly recommended people who wants to try custom ROM to only 'fastboot boot twrp.img' rather than installing it permanently because you can easily flash the miui stock rom again next time u want to back to miui rom.
Unlike twrp, miui 6 recovery is not the same with miui 7. If you tried to flash stock recovery using fastboot flash recovery for different version of miui, it will not work.
Unless you prefer to stay under custom ROM, I highly recommend that you keep your stock recovery intact.
Click to expand...
Click to collapse
Thank you
I will remember to flash the stock recovery using the toolkit next time I switch back to MIUI.
But
If the MIUI rom[6.6.10] or the latest dev[5.11.14] rom needs stock recovery to flash properly, why did it work on the third try? What made it work?
I mean if we find out what makes it flash without error on TWRP we could avoid using stock recovery na?
And btw I was trying MIUI, not the custom ROM, I always stay on them, just wanted to see what MIUI had changed since September.

BUMP!!

Seriously!! someone??

You need to extract the stock recovery from the firmware, then flash it via fastboot, then flash the stock zip

Related

Any ROM bootloops in my Mi Mix 2s

I've tried installing PixelExperience 10 on my phone (which is unlocked and with a custom recovery) and first it throw me Error 7, but that was because I hadn't flash the firmware and vendor .zips before PixelExperience, but even flashing that, the device bootloops until a certain point and then it boot back to recovery.
I've tried with dotOS, LineageOS, even MIUI, multiple versions of it, and non of it are working. The device just bootloops with everything.
Fastboot is accesible, recovery is accesible. I'm using OrangeFox Version R10.0_2, but I originally installed TWRP and I had the same problem.
Have you tried flashing TWRP, then using TWRP recovery environment to wipe EVERTHING, then use adb to push lineageOS (since you will have wiped internal data and lost your rom file)
RunNgun42 said:
Have you tried flashing TWRP, then using TWRP recovery environment to wipe EVERTHING, then use adb to push lineageOS (since you will have wiped internal data and lost your rom file)
Click to expand...
Click to collapse
OrangeFox lets me wipe the same partitions (even Vendor, which TWRP doesn't let me).
I'm not sure if I can install Lineage OS thru adb because it asks for MIUI firmware to be installed. If I wipe everything, I loose the firmware.
Althought, I haven't wiped the internal storage in I while, since I have all the roms and zips, there. I'll try with that.
Make "Format Data" - Yes after that wipe data, system, cache and vendor. Copy zips to storage and dont sideload.
Flash fw 9.6.27, los17 and opengapps. Must work.
The way these roms work you basically have to have previously installed a corresponding version of MIUI first. For instance, if you want to install los16 then you must have previously been running MIUI 10. If you want to install los17 then you need to install MIUI 11 first. I guess Xiaomi does some weird stuff to the internal storage between flashes. If you're stuck in a bootloop the easiest thing to do is use the official MiFlash tool to flash the ROM version of your choice. MiFlash uses fastboot rom files. This site has the best catalog of roms
https://xiaomifirmwareupdater.com/miui/
MAKE SURE YOU UNTICK "Clean and lock" at the bottom or else you will relock your bootloader!

Bricked my Note7pro, Need help!

Hello!
I tried installing TWRP which i successfully did (I was planning to install a custom rom) but then I delete everything on wipe section these are:
•Dalvik
•Cache
•Vendor
•Data
After wiping these, I accidentally turned off the phone and now it can't boot to recovery and says "The system has been destroyed". Good thing is I can still go into fastboot mode.
I tried flashing stock MIUI ROM but it keeps getting error on MiFlash. I can confirm the bootloader is unlocked and I also tried other ROMs but I feel like the phone won't accept it.
I keep getting error whenever I flash even if I use original China ROM.
I know messed it up but please.....
Please save my poor phone.
kiyu07 said:
Hello!
I tried installing TWRP which i successfully did (I was planning to install a custom rom) but then I delete everything on wipe section these are:
•Dalvik
•Cache
•Vendor
•Data
After wiping these, I accidentally turned off the phone and now it can't boot to recovery and says "The system has been destroyed". Good thing is I can still go into fastboot mode.
I tried flashing stock MIUI ROM but it keeps getting error on MiFlash. I can confirm the bootloader is unlocked and I also tried other ROMs but I feel like the phone won't accept it.
I keep getting error whenever I flash even if I use original China ROM.
I know messed it up but please.....
Please save my poor phone.
Click to expand...
Click to collapse
which error r u getting
kiyu07 said:
Hello!
I tried installing TWRP which i successfully did (I was planning to install a custom rom) but then I delete everything on wipe section these are:
•Dalvik
•Cache
•Vendor
•Data
...
Click to expand...
Click to collapse
1. The real error is not turning off the phone. The real error is wiping Vendor. Why on earth would you want to do that? You should never wipe vendor manually. If you just wiped data and dalvik/cache (which is all that you should wipe) you could turn off your phone one thousand times, and the ROM would still boot when you turn on the phone again.
2. You say you tried flashing stock MIUI - but you have not indicated which kind of stock MIUI you have tried flashing (ie, are you trying to flash a fastboot ROM or a zip?).
3. What error are you getting from Mi Flash?
DarthJabba9 said:
1. The real error is not turning off the phone. The real error is wiping Vendor. Why on earth would you want to do that? You should never wipe vendor manually. If you just wiped data and dalvik/cache (which is all that you should wipe) you could turn off your phone one thousand times, and the ROM would still boot when you turn on the phone again.
2. You say you tried flashing stock MIUI - but you have not indicated which kind of stock MIUI you have tried flashing (ie, are you trying to flash a fastboot ROM or a zip?).
3. What error are you getting from Mi Flash?
Click to expand...
Click to collapse
How can he flash a custom rom without wiping vendor???
Sourab debnath said:
How can he flash a custom rom without wiping vendor???
Click to expand...
Click to collapse
Easily. Each ROM will flash its own vendor. The process of flashing to the partition involves wiping the partition and then immediately flashing. So, there is absolutely no point in wiping vendor manually. On the contrary, you can already see the pitfalls of doing so (a similar situation will occur if the new ROM that you want to flash doesn't flash its own vendor - lots of tears!!).
you should try flashing again twrp and then flash the miui zip...
thank you for all the help. got it fixed by using miflashpro, the normal one doesn't flash anything on my phone. i got the stock rom flashed then i was able to get twrp and PE10 working!
kiyu07 said:
Hello!
I tried installing TWRP which i successfully did (I was planning to install a custom rom) but then I delete everything on wipe section these are:
•Dalvik
•Cache
•Vendor
•Data
After wiping these, I accidentally turned off the phone and now it can't boot to recovery and says "The system has been destroyed". Good thing is I can still go into fastboot mode.
I tried flashing stock MIUI ROM but it keeps getting error on MiFlash. I can confirm the bootloader is unlocked and I also tried other ROMs but I feel like the phone won't accept it.
I keep getting error whenever I flash even if I use original China ROM.
I know messed it up but please.....
Please save my poor phone.
Click to expand...
Click to collapse
We'll need one tar or fastboot file of miui extract it and place it in c drive under folder name note 7 pro then again go in fastboot mode open mi flash tools search for the same then no error whole process of flashing will take 10 to 15 minutes once done will reboot your phone immediately and will sure work I messed. Up my device 100 times went to Xiaomi service centre many times but due to their errogance I came back did it myself no issues it's easy but you have to try

Android 10 & Custom ROM & Slot A + B

Hello Android developers and enthusiasts,
I've been installing ROM since 2011 so I would not call myself a n00b however I seemingly cannot install an Android 10 ROM without issues. So this is a plea for help and advice!
I know you need to have OOS installed before you install a custom ROM so I use Auto Flash ROM to install OOS with Android 9 via System Update. I then boot and set up phone, install update, reboot and then install the OOS android 10 via the System Update. I then have a OOS installed with Android 10.
Why would I use such an elaborate method you may ask? Well, I tried to download latest OOS from OnePlus site and wipe phone and then install OOS but that fails (didn't record the error I'm afraid).
I then download all the ROM + dependencies on an USB stick and use fastboot to flash Mauronofrio TWRP. I then follow the steps in the ROM instructions. For EvolutionX these were:
First Time Install / Clean Flash
- Have OOS 10.3 flashed to both slots!!
- Boot to recovery
- Flash BUILD.zip (TWRP built-in)
- Wipe Cache
- Format data
- Reboot to recovery (optional)
- Flash Magisk.zip (optional)
- Reboot to system & #KeepEvolving
Click to expand...
Click to collapse
I followed these to the letter but when i rebooted system I got a snapdragon error and it wouldn't even boot into TWRP until I used fastboot to flash boot into TWRP. I also tried HavocROM and same happened.
I did manage to install Syberia using above method but I didn't like the ROM that much unfortunately.
Finally, I've also read up a lot on Slot A and B but it still is not very clear to me. I think I understand it but what happens does not confirm my theories
I therefore have some questions:
- Should I be able to wipe my phone and install OOS on a wiped phone and then install a custom ROM?
- When I install ROM and it says "Reboot Recovery" and then install ROM again. But if I check what slot is being used the reboot doesn't seem to change the slot. My assumption was that booting recovery was to install ROM in the other slot. Is that correct?
Any other tips you can give me?
Again, I like to stress I am not new to installing custom ROMs so I am a bit disappointed that this is causing me such grief.
Following some answers I will retry tomorrow so I can give some more details if needed. For now, appreciate any help.
roel1976 said:
Hello Android developers and enthusiasts,
I've been installing ROM since 2011 so I would not call myself a n00b however I seemingly cannot install an Android 10 ROM without issues. So this is a plea for help and advice!
I know you need to have OOS installed before you install a custom ROM so I use Auto Flash ROM to install OOS with Android 9 via System Update. I then boot and set up phone, install update, reboot and then install the OOS android 10 via the System Update. I then have a OOS installed with Android 10.
Why would I use such an elaborate method you may ask? Well, I tried to download latest OOS from OnePlus site and wipe phone and then install OOS but that fails (didn't record the error I'm afraid).
I then download all the ROM + dependencies on an USB stick and use fastboot to flash Mauronofrio TWRP. I then follow the steps in the ROM instructions. For EvolutionX these were:
I followed these to the letter but when i rebooted system I got a snapdragon error and it wouldn't even boot into TWRP until I used fastboot to flash boot into TWRP. I also tried HavocROM and same happened.
I did manage to install Syberia using above method but I didn't like the ROM that much unfortunately.
Finally, I've also read up a lot on Slot A and B but it still is not very clear to me. I think I understand it but what happens does not confirm my theories
I therefore have some questions:
- Should I be able to wipe my phone and install OOS on a wiped phone and then install a custom ROM?
- When I install ROM and it says "Reboot Recovery" and then install ROM again. But if I check what slot is being used the reboot doesn't seem to change the slot. My assumption was that booting recovery was to install ROM in the other slot. Is that correct?
Any other tips you can give me?
Again, I like to stress I am not new to installing custom ROMs so I am a bit disappointed that this is causing me such grief.
Following some answers I will retry tomorrow so I can give some more details if needed. For now, appreciate any help.
Click to expand...
Click to collapse
Hi!
I had this exact same problem a couple months ago. Rebooting to recovery used to change slots for me, but then it stopped.
What you can do is change active slot manually on Reboot section. By doing this, you don't even have to reboot to recovery in other to flash the other slot (altough I do it just to be safe).
And remember: the rom is flashed on the inactive slot, so after the final flash you gotta change slots one more time.
When you flash one ROM on top of another different ROM, particularly OOS to custom, always wipe data and not format data, because some custom ROMs do not support being unencrypted in the first time and then encrypt on the first boot. So do it like this:
Flash OOS
Flash TWRP
Reboot recovery
Flash OOS
Flash TWRP
Reboot system
Complete initial setup
Reboot to recovery
Wipe (not format) data
Flash custom ROM (start here for dirty flashing ROM update)
Flash TWRP
Reboot recovery
Flash custom ROM
Flash TWRP
Reboot recovery
Flash Magisk
Reboot system
I don't like built-in TWRP in custom ROMs. I always use @mauronofrio's TWRP. So regardless if the custom ROM I'm using has TWRP built-in or not, I always use the method above. I didn't have a problem with installing ROMs using his TWRP. Slots always switch when flashing ROM.
Thanks for the info, it really helps.
One question: in your experience can you wipe your phone and then installl OOS on the wiped phone?
So I just booted into TWRP, did standard wipe action: Data, Cache, and Dalvik. I then try to flash the latest OOS zip and I then get this error:
Error applying update: 7 (ErrorCode::kInstallDeviceOpenError)
Updater process ended withL ERROR: 1.
Error installing zip file: '/usbstorage/00, INSTALL/OnePlus6Oxygen_22_OTA_044_all_2002220042_a46425f1bfe43d2.zip
FIXED: I was using TWRP 3.3.1.11 and I then found out there was a newer version: 3.3.1.18 which you can get here: https://sourceforge.net/projects/mauronofrio-twrp/files/Enchilada/
I am now able to install OOS from scratch (ie wiped phone).
remewer said:
When you flash one ROM on top of another different ROM, particularly OOS to custom, always wipe data and not format data, because some custom ROMs do not support being unencrypted in the first time and then encrypt on the first boot. So do it like this:
Flash OOS
Flash TWRP
Reboot recovery
Flash OOS
Flash TWRP
Reboot system
Complete initial setup
Reboot to recovery
Wipe (not format) data
Flash custom ROM (start here for dirty flashing ROM update)
Flash TWRP
Reboot recovery
Flash custom ROM
Flash TWRP
Reboot recovery
Flash Magisk
Reboot system
I don't like built-in TWRP in custom ROMs. I always use @mauronofrio's TWRP. So regardless if the custom ROM I'm using has TWRP built-in or not, I always use the method above. I didn't have a problem with installing ROMs using his TWRP. Slots always switch when flashing ROM.
Click to expand...
Click to collapse
I tried this method and everytime I can't seem to flash oos onto the other slot because when it reboots to recovery the folder is encrypted so I can't see which file is the zip. How do I flash the seccond OOS if it shows up encrypted in TWRP.
I have a OnePLus 6 with the latest OOS now because I got into boot loop and i used a flash-all.bat to get back to stock. I also use maronofrio's twrp because that works.
harshybar said:
I tried this method and everytime I can't seem to flash oos onto the other slot because when it reboots to recovery the folder is encrypted so I can't see which file is the zip. How do I flash the seccond OOS if it shows up encrypted in TWRP.
I have a OnePLus 6 with the latest OOS now because I got into boot loop and i used a flash-all.bat to get back to stock. I also use maronofrio's twrp because that works.
Click to expand...
Click to collapse
If you can boot OOS fine, try to do a local update so that both slots have OOS. Then try to flash a custom ROM again using the method I've mentioned.
remewer said:
If you can boot OOS fine, try to do a local update so that both slots have OOS. Then try to flash a custom ROM again using the method I've mentioned.
Click to expand...
Click to collapse
When you say local update you mean while I am running the rom, go to settings then do update from local source?
harshybar said:
When you say local update you mean while I am running the rom, go to settings then do update from local source?
Click to expand...
Click to collapse
Exactly
GuestD2559 said:
When you flash one ROM on top of another different ROM, particularly OOS to custom, always wipe data and not format data, because some custom ROMs do not support being unencrypted in the first time and then encrypt on the first boot. So do it like this:
Flash OOS
Flash TWRP
Reboot recovery
Flash OOS
Flash TWRP
Reboot system
Complete initial setup
Reboot to recovery
Wipe (not format) data
Flash custom ROM (start here for dirty flashing ROM update)
Flash TWRP
Reboot recovery
Flash custom ROM
Flash TWRP
Reboot recovery
Flash Magisk
Reboot system
I don't like built-in TWRP in custom ROMs. I always use @mauronofrio's TWRP. So regardless if the custom ROM I'm using has TWRP built-in or not, I always use the method above. I didn't have a problem with installing ROMs using his TWRP. Slots always switch when flashing ROM.
Click to expand...
Click to collapse
@Cypher_01, Try this guide. This worked for me. I did not reinstall Nikgapps. Maybe that's where the problem lies? Don't forget to change the update slot at the end before you restart.​

Reboot to Recovery after Flashing Custom Rom

Hi, I've OrangeFox Recovery, I've flashed Disable DM Verity Force Encrypt. When I flash a Custom ROM, it is flashed successfully but when I click Reboot System, it automatically reboots into recovery again.
I've tried the Reboot to System option from Recovery but it didn't work, also tried many different ROMs but always get into recovery automatically after flashing ROM.
I also tried to flash Stock MIUI ROM via Mi Flash Tool But it gives the error and the phone boot into bootloader. Please help me fix this problem
on encrypted device you have to format data (yes) after you flash the custom ROM

Error while flashing Custom ROM

In TWRP I was not able to see System and Vendor Partitions in Wipe Section so like a fool
I flashed twrp image in Super, this put me in bootloop
After this I flashed some files from the fastboot version of Stock ROM in the following manner
https://www.droidwin.com/unbrick-poco-x2-fastboot-commands/
But even after this I am was in Bootloop so to see if it is a TWRP problem due to which I was not able to see System and Vendor Partitions, I installed Orange Fox Recovery.
After installing Orange Fox Recovery R11
I wiped Dalvik / ART Cache
Data
Cache
And flashed the Custom ROM(Evolution X 5.8) but then this happens :
assert failed: update_dynamic_partitions (package_extract_file("dynamic_partitions_op_list"))
Updater Process ended with EROOR :1
Error installing ZIP file "path of the file"
Please help !!!
I heard that orangefox has issues with custom rom. Use Original twrp for custom roms. Hot boot twrp and flash . No need to wipe cache or data before flahsing. But after flash format data.
notathinker said:
In TWRP I was not able to see System and Vendor Partitions in Wipe Section so like a fool
I flashed twrp image in Super, this put me in bootloop
After this I flashed some files from the fastboot version of Stock ROM in the following manner
https://www.droidwin.com/unbrick-poco-x2-fastboot-commands/
But even after this I am was in Bootloop so to see if it is a TWRP problem due to which I was not able to see System and Vendor Partitions, I installed Orange Fox Recovery.
After installing Orange Fox Recovery R11
I wiped Dalvik / ART Cache
Data
Cache
And flashed the Custom ROM(Evolution X 5.8) but then this happens :
assert failed: update_dynamic_partitions (package_extract_file("dynamic_partitions_op_list"))
Updater Process ended with EROOR :1
Error installing ZIP file "path of the file"
Please help !!!
Click to expand...
Click to collapse
I found a copy of OrangeFox that worked for me available here.
OrangeFox-R11.1-Stable-Unofficial-lime.zip
AndroidFileHost.com | Download GApps, Roms, Kernels, Themes, Firmware and more. Free file hosting for all Android developers.
Download GApps, Roms, Kernels, Themes, Firmware, and more. Free file hosting for all Android developers.
androidfilehost.com
The key was to first flash xiaomi.eu_multi_HMNote94G_HM9T_V12.5.6.0.RJQCNXM_v12-11.zip
reboot the phone and let it fully start (I think this updated the partition tables or something)
Then go back into OrangeFox and flash crDroidAndroid-11.0-20220121-juice-v7.14.zip
By doing this I was able to get the phone to boot into crDroid whilst using OrangeFox without any bootloops or partition size errors like the one I was initially getting "assert failed: update_dynamic_partitions(package_extract_file("dynamic_partitions_op_list"))"
I think the important step is to let it fully boot after putting on the xiaomi.eu ROM as it must resize partitions or something...
I am having the same problem. I tried to restore an orangefox backup and i ticked the "super" box. After that when i try to flash a rom proccess fails with the exact same message (assert failed: update_dynamic_partitions (package_extract_file("dynamic_partitions_op_list"))). I have flashed three different recoveries (pitchblack, orangefox, lineageos) and tried from every each of them flashing a rom both from the recovery and sideloading. The roms i have tried are: crdroid A12, arrowos A11 & A12, lineageos microg and at last the stock miui for my device. Nothing worked so far. Please if someone has any knowledge or ideas help because i am starting to believe it is irreversible...
Device: Redmi note 9s (curtana)
I finally figured it out. Since I was not able to flash any ROM (including stock miui) from the recovery, neither with sideloading, I had to download Mi Flash tool on my PC and a miui ROM .tgz file, used especially for flashing through Fastboot/Mi Flash. Then I booted my phone on fastboot mode and connected it to PC, opened the MiFlash tool on PC, chose the miui Rom file (you have to extract twice from the original .tgz file to reach to the selectable one, and I also had to put it on Desktop otherwise it could not be reached) and finally flash it.
HomoImpudens said:
I finally figured it out. Since I was not able to flash any ROM (including stock miui) from the recovery, neither with sideloading, I had to download Mi Flash tool on my PC and a miui ROM .tgz file, used especially for flashing through Fastboot/Mi Flash. Then I booted my phone on fastboot mode and connected it to PC, opened the MiFlash tool on PC, chose the miui Rom file (you have to extract twice from the original .tgz file to reach to the selectable one, and I also had to put it on Desktop otherwise it could not be reached) and finally flash it.
Click to expand...
Click to collapse
Yeah, after flashing it with miflash tool your phone runs fine with miui. Were you able to install a custom rom after this? If yes, could you tell what steps did you follow.
If I remember correctly, after that I followed the standard procedure first to flash a custom recovery and then through that a custom rom. Downloaded SDK tools (if I remember the name correctly), opened smartphone on fastboot mode, opened terminal window fom inside SDK tools folder, downloaded a custom recovery, placed it inside SDK folder, rename it "recovery", typed on terminal window: "fastboot flash recovery recovery.img" (again if I remember correctly) and then reboot to recovery. From there install any custom Rom you want.
Orangefox recovery have tick of unmount system and vendor, dont forget to tick them and it will solve your problem
GiGilGilang said:
Orangefox recovery have tick of unmount system and vendor, dont forget to tick them and it will solve your problem
Click to expand...
Click to collapse
Thank you so much. I'm so lucky that I stumbled into your comment, you saved my device!!

Categories

Resources