Faq about official fota updates - Asus ZenFone Max Pro M1 Guides, News, & Discussio

Here I wrote down some of my experiences regarding fota updates of Asus Zenfone Max pro m1(6gb).
I unlocked my phone with unofficial method. Don't know what will happen if you use official method.
1>> if you unlocked the bootloader still you can get fota updates.
2>> if you root your phone by magisk then also you can get fota updates.
3>> if your recovery is twrp then also you can get fota updates as usual.
***** BUT FOR INSTALLING THE FOTA UPDATE YOU MUST UNROOT YOUR PHONE AND YOUR RECOVERY MUST BE STOCK.

Except the *****BUT part all 3 points are true.
You can flash the updated stock ROM too, without unrooting and with a custom recovery like twrp.

akshmau5 said:
Except the *****BUT part all 3 points are true.
You can flash the updated stock ROM too, without unrooting and with a custom recovery like twrp.
Click to expand...
Click to collapse
Yes i know that but here i tell about the official fota , not the modified zip which available in xda thread.

Rommaster94 said:
Yes i know that but here i tell about the official fota , not the modified zip which available in xda thread.
Click to expand...
Click to collapse
Oh well, didn't know that part.
Still, tricky situation for everytime wanting to update, you gotta unroot, flash the stock recovery and lock the BL(little tricky perhaps). With all our precious data being wiped and stuff each time for a mere update.
Just my 2 cents.

akshmau5 said:
Oh well, didn't know that part.
Still, tricky situation for everytime wanting to update, you gotta unroot, flash the stock recovery and lock the BL(little tricky perhaps). With all our precious data being wiped and stuff each time for a mere update.
Just my 2 cents.
Click to expand...
Click to collapse
No bro, you don't need a locked bootloader for fota update and all your precious data will be saved after upgrade.
Recently i updated my azmp1 from 331 to 334 and all working like charm

Rommaster94 said:
No bro, you don't need a locked bootloader for fota update and all your precious data will be saved after upgrade.
Recently i updated my azmp1 from 331 to 334 and all working like charm
Click to expand...
Click to collapse
Oh, well. Didn't know that.
Good stuff.

...only if you unlock your bootloader with unofficial method.
Using official unlock app, however, will permanently void your warranty and ensure that your device gets blacklisted from receiving OTA updates after successful unlock.
Sent from my ASUS_X00TD using XDA Labs

Rommaster94 said:
No bro, you don't need a locked bootloader for fota update and all your precious data will be saved after upgrade.
Recently i updated my azmp1 from 331 to 334 and all working like charm
Click to expand...
Click to collapse
How did you do this ?
Did you flash the stock recovery ? If so, where can I find just the recovery ?
Or did you just update and the rest was automatic ?

camlin said:
How did you do this ?
Did you flash the stock recovery ? If so, where can I find just the recovery ?
Or did you just update and the rest was automatic ?
Click to expand...
Click to collapse
Stock recovery thread--
https://forum.xda-developers.com/as...ck-recovery-image-zenfone-max-pro-m1-t3790343
You must have stock recovery and unrooted phone for successful fota updating.

Hey anyone using substratum theme engine without root and still getting the update

Related

[Q] i have a moto x dev edition vzw

here my problem i've unlocked bootloader rooted and installed twrp but i cant update my phone to 4.4. everytime i take the ota update my phone just boots and shutdowns and repeats. any suggestions?
bk07 said:
here my problem i've unlocked bootloader rooted and installed twrp but i cant update my phone to 4.4. everytime i take the ota update my phone just boots and shutdowns and repeats. any suggestions?
Click to expand...
Click to collapse
you're rooted trying to do an OTA?
once you root, accepting an OTA can mess up your phone or make you lose root.
PremierGT said:
you're rooted trying to do an OTA?
once you root, accepting an OTA can mess up your phone or make you lose root.
Click to expand...
Click to collapse
idc about losing root b/c it has an unlockedbootloader getting root back is the easy part i do want the update to 4.4 though
bk07 said:
idc about losing root b/c it has an unlockedbootloader getting root back is the easy part i do want the update to 4.4 though
Click to expand...
Click to collapse
flash back to stock recovery. then do OTA. should work for you.
PremierGT said:
flash back to stock recovery. then do OTA. should work for you.
Click to expand...
Click to collapse
i've tryed that as well
bk07 said:
i've tryed that as well
Click to expand...
Click to collapse
don't flash back to it in twrp. use rsdlite or manually flash it with fastboot commands. if you actually flashed the full ota and didn't have root or twrp anymore then you would be able to take the OTA no problem.
jayboyyyy said:
don't flash back to it in twrp. use rsdlite or manually flash it with fastboot commands. if you actually flashed the full ota and didn't have root or twrp anymore then you would be able to take the OTA no problem.
Click to expand...
Click to collapse
Oddly I've done that even before I put twrp on my phone I used mfastboot with the stock IMG I got from moto. I did the update right when I got the phone and it did what I described so I thought I for find a something where I could flash stock to my phone by using twrp.
Download Motorola device manager. It should automatically restore the software to stock 4.4.
http://d1tsx1og7dz7v4.cloudfront.net/MotorolaDeviceManager_2.4.5.exe
thx for the help i had to mfastboot 4.4
This is your easiest option. All you need to do is run this utility. It will install drivers, download firmware, and flash back to stock. I used it earlier, and it's brilliant.
Even if you've already solved your problem, I highly recommend saving this for later use.
http://forum.xda-developers.com/showthread.php?t=2597625

Error on update

Updating from 5.0 to 5.0.1 I got a message that said "error" during the reboot and install phase. I had to manually shut down the phone and reboot. After the reboot, I noticed that there was no update available and my phone is still on 5.0. I've only unlocked the bootloader and does with CF. No custom recovery or rom.
Sent from my Nexus 6 using XDA Free mobile app
You used CF so if you rooted it wont work.
As stated in the other threads, you cannot update if you have root. You need to unroot. The update notification will eventually pop up again,
Hand76 said:
You used CF so if you rooted it wont work.
Click to expand...
Click to collapse
PaisanNYC said:
As stated in the other threads, you cannot update if you have root. You need to unroot. The update notification will eventually pop up again,
Click to expand...
Click to collapse
Ah okay I didn't realize that. Thanks for the info!
Sent from my Nexus 6 using XDA Free mobile app
I'm not rooted, I just have decrypted and I get the error.
Aston Martin said:
I'm not rooted, I just have decrypted and I get the error.
Click to expand...
Click to collapse
Same issue - any change to the kernel or system files is going to cause this issue. You need to be completely stock (having the bootloader unlocked is not an issue)
n00b question: I have mine unlocked and rooted; how should I go about getting this update?
TheLegendary87 said:
n00b question: I have mine unlocked and rooted; how should I go about getting this update?
Click to expand...
Click to collapse
Unroot relock boot loader which will while everything again and apply update
ryuken11221 said:
Unroot relock boot loader which will while everything again and apply update
Click to expand...
Click to collapse
Did you mean "...which will wipe everything again..." ? If so, that's really not what I wanted to hear, haha.
TheLegendary87 said:
Did you mean "...which will wipe everything again..." ? If so, that's really not what I wanted to hear, haha.
Click to expand...
Click to collapse
yeah lol i know its hard to hear
ryuken11221 said:
yeah lol i know its hard to hear
Click to expand...
Click to collapse
Found this thread which walks you through the update process without having to wipe your data. Worked perfectly.
TheLegendary87 said:
n00b question: I have mine unlocked and rooted; how should I go about getting this update?
Click to expand...
Click to collapse
You need to get stock before taking any OTA (bootloader being unlocked doesn't cause any issues with update). You can either download factory images for 5.0 and flash those (skip userdata.img if you don't want to lose data), and then take OTA, OR, do it the easier way - download factory images for 5.0.1 and flash those (skip userdata.img to avoid losing data)
ryuken11221 said:
Unroot relock boot loader which will while everything again and apply update
Click to expand...
Click to collapse
huh? why relock bootloader? And that's not going to fix the issue with the modified system files
jj14 said:
You need to get stock before taking any OTA (bootloader being unlocked doesn't cause any issues with update). You can either download factory images for 5.0 and flash those (skip userdata.img if you don't want to lose data), and then take OTA, OR, do it the easier way - download factory images for 5.0.1 and flash those (skip userdata.img to avoid losing data)
Click to expand...
Click to collapse
Exactly what I did following the guidence in this thread: http://forum.xda-developers.com/nexus-6/help/help-5-01-wipe-t2970924

[Q] Install 5.1 OTA if rooted and bootloader unlocked?

Hi guys !
I unlocked my bootloader and rooted my device, and i don't know if i can upgrade my Nexus 6 by ota (received this morning on the phone) without brick it.
Is it dangerous?
Thank you
EDIT : I'm on stock Lollipop 5.0.1
Unlocked is fine. If you have root or any other system mods, you'll need to remove them.
Oh thanks for the quick answer
So if I unroot it with Nexus Root Toolkit it will be ok?
Midsylen said:
Oh thanks for the quick answer
So if I unroot it with Nexus Root Toolkit it will be ok?
Click to expand...
Click to collapse
Nexus toolkit doesn't unroot. It reflashes the entire phone which also means root disappears. If you're going to do that, no point taking the ota. Just flash full update.
You can indoor via the SuperSU app.
Oh ok I just saw that.
So if I unroot via SuperSU it's ok i can install?
Midsylen said:
Oh ok I just saw that.
So if I unroot via SuperSU it's ok i can install?
Click to expand...
Click to collapse
As long as you do the full unroot and made no other modifications. Oh and everything must be 100% stock, including recovery
I've installed TWRP...
So, what is the best way for me to install 5.1 without losing my data?
Midsylen said:
I've installed TWRP...
So, what is the best way for me to install 5.1 without losing my data?
Click to expand...
Click to collapse
download the factory image that you want to update to.
extract the system.img, boot.img and radio.img
Fastboot flash them.
You could also flash the bootloader if you want though I dont see any point.
Ok, thank you for your quick answers

[Q] rooted, unlocked, TWRP recovery, stock, Verizon OTA help

I have a Verizon Nexus 6 that is rooted, unlocked, custom TWRP recovery and stock running 5.1 build LMY47E and I am getting the OTA notification for the 5.1.1 update. I have searched a good deal of places and haven't found the answer to how I might go about getting the update. I have been out of the rooting game for several years, so I am rusty and need a little help. I wasn't sure if there was a way to take the update and stay rooted or if I have to completely undo everything back to stock. Any info would be a great help and appreciated.
I could be mistaken, but I don't think that you can take an OTA amd remain rooted. I think it will break root, and you will have to re-root.
What I would suggest is to just flash a custom ROM that is build on 5.1.1 like Beans' PureNexus. That is what I am running, and it is great.
http://forum.xda-developers.com/nexus-6/development/rom-pure-nexus-project-t3148214
evolefty said:
I have a Verizon Nexus 6 that is rooted, unlocked, custom TWRP recovery and stock running 5.1 build LMY47E and I am getting the OTA notification for the 5.1.1 update. I have searched a good deal of places and haven't found the answer to how I might go about getting the update. I have been out of the rooting game for several years, so I am rusty and need a little help. I wasn't sure if there was a way to take the update and stay rooted or if I have to completely undo everything back to stock. Any info would be a great help and appreciated.
Click to expand...
Click to collapse
a.demarco said:
I could be mistaken, but I don't think that you can take an OTA amd remain rooted. I think it will break root, and you will have to re-root.
What I would suggest is to just flash a custom ROM that is build on 5.1.1 like Beans' PureNexus. That is what I am running, and it is great.
http://forum.xda-developers.com/nexus-6/development/rom-pure-nexus-project-t3148214
Click to expand...
Click to collapse
When installing a recovery, the updater script looks at system and boot. This means that you can not be rooted and and have the stock, encrypted kernel. You also need to have stock recovery to install the OTA.
You can download the 5.1.1 factory image from Google and flash the boot.img, system.img, bootloader.img, and radio.img. Then, while still in bootloader, select "recovery" and you will boot to TWRP where you can flash the SuperSU.zip.
a.demarco said:
I could be mistaken, but I don't think that you can take an OTA amd remain rooted. I think it will break root, and you will have to re-root.
What I would suggest is to just flash a custom ROM that is build on 5.1.1 like Beans' PureNexus. That is what I am running, and it is great.
http://forum.xda-developers.com/nexus-6/development/rom-pure-nexus-project-t3148214
Click to expand...
Click to collapse
The OTA will not install when the device is rooted
cam30era said:
When installing a recovery, the updater script looks at system and boot. This means that you can not be rooted and and have the stock, encrypted kernel. You also need to have stock recovery to install the OTA.
You can download the 5.1.1 factory image from Google and flash the boot.img, system.img, bootloader.img, and radio.img. Then, while still in bootloader, select "recovery" and you will boot to TWRP where you can flash the SuperSU.zip.
Click to expand...
Click to collapse
Just checked again and yes I am rooted, with TWRP and I also checked and the device is not encrypted, so maybe that is why I am getting the notification. I really appreciate your input on getting the update installed.
evolefty said:
Just checked again and yes I am rooted, with TWRP and I also checked and the device is not encrypted, so maybe that is why I am getting the notification. I really appreciate your input on getting the update installed.
Click to expand...
Click to collapse
You'll get the notification. You just can't flash it.
I'm not sure there's been a full, satisfactory answer to this thread (or a few others). Would using something like Nexus Root Toolkit to 1) unroot 2) restore stock recovery, 3) accept the OTA. Will this work?
- Does this relock the bootloader? (Would we then have to unlock, thus wiping the device?)
- Can we successfully re-root and flash recovery? (Or will new 5.1.1 versions be needed?)
At some point, to get 5.1.1 going, should I just backup and flash the whole bloody image from Google?
DogzOfWar said:
I'm not sure there's been a full, satisfactory answer to this thread (or a few others). Would using something like Nexus Root Toolkit to 1) unroot 2) restore stock recovery, 3) accept the OTA. Will this work?
- Does this relock the bootloader? (Would we then have to unlock, thus wiping the device?)
- Can we successfully re-root and flash recovery? (Or will new 5.1.1 versions be needed?)
At some point, to get 5.1.1 going, should I just backup and flash the whole bloody image from Google?
Click to expand...
Click to collapse
- OTA`s will not install if the sytem, boot and recovery are modified in any way.
- Reflashing the stock image will NOT lock the bootloader
- And yes you can flash a custom recovery and reroot after updating.
Or flash the latest stock rom with TWRP from here http://forum.xda-developers.com/nexus-6/development/fxz-nexus-6-recovery-flashable-fastboot-t3066052.
gee2012 said:
- OTA`s will not install if the sytem, boot and recovery are modified in any way.
- Reflashing the stock image will NOT lock the bootloader
- And yes you can flash a custom recovery and reroot after updating.
Or flash the latest stock rom with TWRP from here http://forum.xda-developers.com/nexus-6/development/fxz-nexus-6-recovery-flashable-fastboot-t3066052.
Click to expand...
Click to collapse
So the question that started this thread: My system is technically modified. Can I unroot and replace recovery, and now be in a sufficiently "unmodified" state? OR, do I have to lock the bootloader in order for the OTA to continue?
I think the OP and myself are trying to do the same thing: We're lazy, we don't want to wipe, we don't want to lose data, we just want the OTA without having to reflash the whole thing. Does anyone know if this is possible?
DogzOfWar said:
So the question that started this thread: My system is technically modified. Can I unroot and replace recovery, and now be in a sufficiently "unmodified" state? OR, do I have to lock the bootloader in order for the OTA to continue?
I think the OP and myself are trying to do the same thing: We're lazy, we don't want to wipe, we don't want to lose data, we just want the OTA without having to reflash the whole thing. Does anyone know if this is possible?
Click to expand...
Click to collapse
Best/easiest is to:
- fastboot erase system
- fastboot flash system system.img
- flash the stock boot and recovery.img if needed
- adb sideload the OTA in stock recovery
This will not wipe your device
And you don`t have to lock the bootloader ever unless you have too RMA it or send it in for service, OTA`s will even install with a unlocked bootloader.
DogzOfWar said:
So the question that started this thread: My system is technically modified. Can I unroot and replace recovery, and now be in a sufficiently "unmodified" state? OR, do I have to lock the bootloader in order for the OTA to continue?
I think the OP and myself are trying to do the same thing: We're lazy, we don't want to wipe, we don't want to lose data, we just want the OTA without having to reflash the whole thing. Does anyone know if this is possible?
Click to expand...
Click to collapse
Supplementing that: using the "unroot" function in SuperSU is not sufficient with Lollipop. It still leaves the vestiges of a few modified files that will cause an OTA to fail.
gee2012 said:
Best/easiest is to:
- fastboot erase system
- fastboot flash system system.img
- flash the stock boot and recovery.img if needed
- adb sideload the OTA in stock recovery
This will not wipe your device
And you don`t have to lock the bootloader ever unless you have too RMA it or send it in for service, OTA`s will even install with a unlocked bootloader.
Click to expand...
Click to collapse
gee2012 said:
Best/easiest is to:
- fastboot erase system
- fastboot flash system system.img
- flash the stock boot and recovery.img if needed
- adb sideload the OTA in stock recovery
This will not wipe your device
And you don`t have to lock the bootloader ever unless you have too RMA it or send it in for service, OTA`s will even install with a unlocked bootloader.
Click to expand...
Click to collapse
Thanks for the info and I really appreciate your input. What are your feelings on using Wug's toolkit to unroot and go back stock, take the update, then re-root and flash the custom recovery. I have never used a toolkit before, but that seems to be the popular method. Like I said at the beginning I am new to all of this, the last device I rooted and really messed around with was the droid x so bear with me as I am learning. I am currently reading about Wug's and will look at the method you just spoke of, but any info would be great.
evolefty said:
Thanks for the info and I really appreciate your input. What are your feelings on using Wug's toolkit to unroot and go back stock, take the update, then re-root and flash the custom recovery. I have never used a toolkit before, but that seems to be the popular method. Like I said at the beginning I am new to all of this, the last device I rooted and really messed around with was the droid x so bear with me as I am learning. I am currently reading about Wug's and will look at the method you just spoke of, but any info would be great.
Click to expand...
Click to collapse
I don`t like Toolkits tbh because like with all automated applications the unexperienced user has no idea whats going/has zero control over whats happening and if something goes wrong they can`t fix the issue. Imo its best to learn adb/fastboot/sideload.
gee2012 said:
I don`t like Toolkits tbh because like with all automated applications the unexperienced user has no idea whats going/has zero control over whats happening and if something goes wrong they can`t fix the issue. Imo its best to learn adb/fastboot/sideload.
Click to expand...
Click to collapse
Gotcha, and completely understand. I will do some reading on that method and again thanks for your help.
evolefty said:
Gotcha, and completely understand. I will do some reading on that method and again thanks for your help.
Click to expand...
Click to collapse
Read the sticky threads http://forum.xda-developers.com/nexus-6/general/nexus-6-sticky-roll-thread-t3061066, this is a good start. Adb and fastboot isn`t that hard but its very safe and effective
gee2012 said:
Read the sticky threads http://forum.xda-developers.com/nexus-6/general/nexus-6-sticky-roll-thread-t3061066, this is a good start. Adb and fastboot isn`t that hard but its very safe and effective
Click to expand...
Click to collapse
Will do, and that is the method I used to root for the simple fact to learn.
evolefty said:
Will do, and that is the method I used to root for the simple fact to learn.
Click to expand...
Click to collapse
Good luck
gee2012 said:
- OTA`s will not install if the sytem, boot and recovery are modified in any way.
- Reflashing the stock image will NOT lock the bootloader
- And yes you can flash a custom recovery and reroot after updating.
Or flash the latest stock rom with TWRP from here http://forum.xda-developers.com/nexus-6/development/fxz-nexus-6-recovery-flashable-fastboot-t3066052.
Click to expand...
Click to collapse
In that link you sent I am not seeing the VZW version of 5.1.1. Can we use the "International" version?
Thank you.
needoZ said:
In that link you sent I am not seeing the VZW version of 5.1.1. Can we use the "International" version?
Thank you.
Click to expand...
Click to collapse
Yes, use the LMY47Z build.
DogzOfWar said:
So the question that started this thread: My system is technically modified. Can I unroot and replace recovery, and now be in a sufficiently "unmodified" state? OR, do I have to lock the bootloader in order for the OTA to continue?
I think the OP and myself are trying to do the same thing: We're lazy, we don't want to wipe, we don't want to lose data, we just want the OTA without having to reflash the whole thing. Does anyone know if this is possible?
Click to expand...
Click to collapse
Bootloader does not have to be locked to take an OTA. You can not be rooted or modified in any way however.
gee2012 said:
I don`t like Toolkits tbh because like with all automated applications the unexperienced user has no idea whats going/has zero control over whats happening and if something goes wrong they can`t fix the issue. Imo its best to learn adb/fastboot/sideload.
Click to expand...
Click to collapse
While I agree, once you have "paid your dues" and flashed without automation then the NRT is a great tool, so long as you have an understanding of what it is doing.

Latest KitKat stock ROM available

So I've reset my HTC One back to stock 2 days ago and since then have received a lot of OTA updates.
Then I found that I had lost root.
I managed to reinstall TWRP and root today, but got another OTA update notification.
Because I don't want to lose root (and because TWRP says you should not update with custom recoveries), I'm looking for another way to update.
TWRP suggests to "wait for the developers to create a new ROM" but honestly, finding something in this forum is not easy...
My update is 6.09.401, but if there is something more recent I'll take that (but still KitKat). I've looked in the ROM collection but the latest seems to be 5.x or jump to 7.xx.
If I have to do some work (e.g. more research) please direct me to the right direction and I'll be happy to do it.
Will RUUs work? Still not clear what they are.
algiogia said:
So I've reset my HTC One back to stock 2 days ago and since then have received a lot of OTA updates.
Then I found that I had lost root.
Click to expand...
Click to collapse
Yep, you'll always loose root after an OTA update. Must ppl doesn't matter about that since it only takes a few minutes to root again.
I managed to reinstall TWRP and root today, but got another OTA update notification.
Because I don't want to lose root (and because TWRP says you should not update with custom recoveries), I'm looking for another way to update.
Click to expand...
Click to collapse
The only way to use ota update is by flashing back the stock recovery that match your version-main. Like said above, you'll loose root after an update. You can also update your phone by flashing a RUU but you'll also loose root and all your file since the RUU will make your phone stock, like if it was brand new.
TWRP suggests to "wait for the developers to create a new ROM" but honestly, finding something in this forum is not easy...
Click to expand...
Click to collapse
My update is 6.09.401,?but if there is something more recent I'll take that (but still KitKat). I've looked in the ROM collection but the latest seems to be 5.x or jump to 7.xx.
Click to expand...
Click to collapse
The latest Kitkat version is 6.09.401.12 otherwise its lollipop 7.19.401.x
I think the simplest solution since you want to stay on kitkat is to reflash your stock recovery 6.09.401.? (you didn't typed the last number), install the ota updates until you are on 6.09.401.11 or 6.09.401.12, reflash twrp and flash Supersu to re-root.
If I have to do some work (e.g. more research) please direct me to the right direction and I'll be happy to do it.
Will RUUs work? Still not clear what they are.[/QUOTE]
RUU are packages that will restore then entire phone Software and firmware partitions.
Thanks alray.
So are you saying there is not pre-rooted 6.09.401.11 ROM available to flash on the forum?
Where shall I look for it?
algiogia said:
Thanks alray.
So are you saying there is not pre-rooted 6.09.401.11 ROM available to flash on the forum?
Where shall I look for it?
Click to expand...
Click to collapse
Maybe i don't know. All roms are posted in the development section. Why not simply updating your phone and flashing Supersu again? It will take you maybe 20 min to install the update, reflash twrp and root...
alray said:
Maybe i don't know. All roms are posted in the development section. Why not simply updating your phone and flashing Supersu again? It will take you maybe 20 min to install the update, reflash twrp and root...
Click to expand...
Click to collapse
I'll have to find and flash the stock ROM first, do the updates, then flash TWRP and SuperSu.
If there is a way to flash only once why should I waste time (and increase chances of bricking the phone)?
algiogia said:
I'll have to find and flash the stock ROM first, do the updates, then flash TWRP and SuperSu.
If there is a way to flash only once why should I waste time (and increase chances of bricking the phone)?
Click to expand...
Click to collapse
You already are on the stock rom, just flash the stock recovery over twrp, install ota update(s) until you are on the desired version, flash twrp and supersu. There isn't really any chances to brick....
Code:
fastboot flash recovery your_stock_recovery.img
fastboot erase cache
fastboot reboot
Then boot the phone, install update(s). Once updated to the desired version, reflash twrp:
Code:
fastboot flash recovery twrp.img
fastboot erase cache
fastboot reboot-bootloader
Boot in twrp, install supersu 2.46.zip then reboot in the OS and you're done.
But yes if you prefer you can find a stock rooted rom of 6.09.401.11 if there is still one somewhere.

Categories

Resources