Bootloader Unlocked but says "FAILED (remote: Command not allowed)" - Android Q&A, Help & Troubleshooting

I'm trying to flash system.img using fastboot. However it says "FAILED (remote: Command not allowed)"
I can access fastboot and Recovery.
I'm doing this because I have no OS due to accidental wipe.
I'm using Huawei Mediapad M2 801L

Caelestiel said:
I'm trying to flash system.img using fastboot. However it says "FAILED (remote: Command not allowed)"
I can access fastboot and Recovery.
I'm doing this because I have no OS due to accidental wipe.
I'm using Huawei Mediapad M2 801L
Click to expand...
Click to collapse
Already another thread here. http://forum.xda-developers.com/android/help/help-please-help-to-unlock-bootloader-t3514419/page1
Please use search and read before posting. It keeps the forums clean . Copy and paste the adb/fastboot log you got here so that we can help you better. Also you can flash a custom rom and get things straight if you have a custom recovery like TWRP or CWM installed.

Related

Unable to install recovery

Hi guys, my phone is Infocus M2 3G and I have rooted it earlier. Now I accidentally removed some services and now getting errors. I want to flash stock rom so it can be like previous one.
I installed ADB and fastboot in my system.
When I tried the command
Code:
fastboot flash recovery recovery.img
the following error came:
Code:
sending 'recovery' (10240 KB)...
OKAY [ 0.417s]
writing 'recovery'...
FAILED (remote:
Security deny - Err:0x2017
)
finished. total time: 0.430s
I searched and I got to know that this may be because of bootloader lock.
So I tried the command
Code:
fastboot oem unlock
and
Code:
fastboot flashing unlock
For oem unlock it showed unknown command and for flashing unlock it showed all options of fastboot.
I installed Rom Manager and select boot into recovery option, it took me to Android Recovery System 3e.
I have stock rom files downloaded and just want to put stock rom in my phone. Any Ideas that can help?
sumit77seo said:
Hi guys, my phone is Infocus M2 3G and I have rooted it earlier. Now I accidentally removed some services and now getting errors. I want to flash stock rom so it can be like previous one.
I installed ADB and fastboot in my system.
When I tried the command
the following error came:
I searched and I got to know that this may be because of bootloader lock.
So I tried the command and
For oem unlock it showed unknown command and for flashing unlock it showed all options of fastboot.
I installed Rom Manager and select boot into recovery option, it took me to Android Recovery System 3e.
I have stock rom files downloaded and just want to put stock rom in my phone. Any Ideas that can help?
Click to expand...
Click to collapse
You can try putting the stock ROM zip file on the root of your sdcard (As in not located in any sub folders) and renaming the ROM file to update.zip then use the stock recovery to flash the ROM. Let me know if you still have questions!

Search root for Archos Diamond 2 Plus

Hi !
I desesperatly seeking a root process for the Archos Diamond 2 Plus.
I can not find it by google.
As it looks like the P9000 of Elephone, I wondered if it was possible to use its recovery.img and supersu 1 and 2.
An idea ? A link for tutorial or for the stock rom (If root process failed) ?
Please ?
ok, no response.
I have tested with unlocked bootloader procedure but :
- i type adb reboot bootloader
- fastboot oem unlock
An normaly we confirm unlock with vol+ . But with archos diamond 2 plus, wol + is not active. There is no reaction at this moment.
So, if not unlocked bootloder, no flashing..
An idea ?
fanfan7110 said:
ok, no response.
I have tested with unlocked bootloader procedure but :
- i type adb reboot bootloader
- fastboot oem unlock
An normaly we confirm unlock with vol+ . But with archos diamond 2 plus, wol + is not active. There is no reaction at this moment.
So, if not unlocked bootloder, no flashing..
An idea ?
Click to expand...
Click to collapse
What android version?
android 6.0 marshmallow
fanfan7110 said:
android 6.0 marshmallow
Click to expand...
Click to collapse
You can boot into fastboot, which is good, in fastboot, type fastboot oem startftm. It will give you an error in the command line but what this allows you to do, is push files into partitions that are mounted R/W, that is of course, if this actually works for your device since every device is different.
Report results!
So after typed fastboot oem startftm i have the message "FAILED (remote: unknown command)"
And after to trying to put img file in boot , i have this : 'FAILED (remote: download for partition 'boot' is not allowed)"
fanfan7110 said:
So after typed fastboot oem startftm i have the message "FAILED (remote: unknown command)"
And after to trying to put img file in boot , i have this : 'FAILED (remote: download for partition 'boot' is not allowed)"
Click to expand...
Click to collapse
Please please please make a whole IMG backup since what we'll do might brick your device. I can't help you till Thursday, hit me up on Thursday with a reply on this thread.
---------- Post added at 08:51 PM ---------- Previous post was at 08:50 PM ----------
fanfan7110 said:
So after typed fastboot oem startftm i have the message "FAILED (remote: unknown command)"
And after to trying to put img file in boot , i have this : 'FAILED (remote: download for partition 'boot' is not allowed)"
Click to expand...
Click to collapse
Also, it is supposed to say failed when you start it.
hummm i can't take a backup of boot.img, because SU is not installed..
fanfan7110 said:
hummm i can't take a backup of boot.img, because SU is not installed..
Click to expand...
Click to collapse
Well, since the device is running mtk, try this. Flash the superuser binary and report, also, I am NOT responsible for anything, YOU are making these changes.
ok tested, but don't work with marshmallow. MTK Droid tools is incompatible with V6
fanfan7110 said:
ok tested, but don't work with marshmallow. MTK Droid tools is incompatible with V6
Click to expand...
Click to collapse
Well, now you have a mission to somehow port a working recovery to your phone.

twrp-3.3.1-0-mido.img installation error

Hi, on this phone there was a Lineage 16 9.0, but for a problem I had to reset everything and miflash the rom again mido_global_images_V10.2.3.0.NCFMIXM_20190128.0000.00_7.0_global. It was to put the Gcam. Now I'm trying to start over and get the recovery twrp, but it always fails.
I've tried with Fastboot Tool and with platform-tools, but it always fails.
At the command 'fastboot devices' sees the phone, instead at the command 'fastboot flash recovery recovery.img' sees the recovery ok, but when it has to write it says 'FAILED (remote: 'Partition flashing is not allowed')'
How do I solve it?
Unlock bootloader after flashing MIUI stock ROM.
After that again attempt to install TWRP.

Error on fastboot boot/flash TWRP

Hi everyone!
I want to install TWRP on a P20 Lite with the main goal to install LOS16 and possible other custom ROMs. Therefore I was following the official guide on LOS.
However when I try to boot/flash the TWRP image-file with fastboot i receive the following error:
Problem
Code:
$>fastboot flash recovery twrp.img
Sending 'recovery' (14946 KB) OKAY [ 0.396s]
Writing 'recovery' FAILED (remote: 'partition length get error')
fastboot: error: Command failed
$>fastboot boot twrp.img
Sending 'boot.img' (14946 KB) OKAY [ 0.376s]
Booting FAILED (remote: 'invalid command')
fastboot: error: Command failed
Error is shown in admin command line as well.
Furthermore I get the following error which let me think that it is more of a fastboot problem.
Code:
$>fastboot getvar version
getvar:version FAILED (remote: 'invalid command')
$>fastboot oem device-info
FAILED (remote: 'invalid command')
fastboot: error: Command failed
Specs
Phone: Huawei P20 Lite ANE-LX1
Build:9.1.0.377(C432E7R1P7)
EMUI-Version 9.1.0
Bootloader unlocked - PHONE Unlocked, FRP unlocked (via PotatoNV method with same adb/fastboot installation).
Adb:
Android Debug Bridge version 1.0.41
Version 30.0.5-6877874
Info
Same error with adb/fastboot from two different PCs (Win10). Adb and fastboot seem to work in general. For example both show the device in List of devices attached and i can reboot and boot via adb and fastboot.
As I understand this post it is not possible to flash twrp directly on android 9.
However I tried the twrp file linked in the mentioned post and several images linked in this forum (this, this) + the one from twrp-anne and got the same error fastboot: error: Command failed on all.
Does anybody know or has a hint what might be the problem? Any help appreciated.
Best regards
I had the same issue.
You have to use the command: fastboot flash recovery_ramdisk twrp.img
yellowzebra said:
As I understand this post it is not possible to flash twrp directly on android 9.
Click to expand...
Click to collapse
Hello, please read carefully :
-Alf- said:
flash TWRP , run command
fastboot flash recovery_ramdisk (TWRP's_name).img
Click to expand...
Click to collapse
-Alf- said:
Since A8 and above you can not install TWRP over eRecovery from fastboot, only from TWRP:
Click to expand...
Click to collapse
- eRecovery and Recovery are two different things .
That worked!
Thank you very much. Both of you for the fast answer
I am currently researching before asking more noob questions. Have some thoughts. Especially on difference between eRecovery and Recovery and why commands as fastboot oem device info where not working before the recovery_ramdisk. Might return later.
Thx!

Any way to recover my bricked phone? (wiped recovery, erecovery, data, system....)

Hello guys...
So, without going too much into details of how I idiotically f-ed up pretty much everything... I just want to say that I've already lost about 12 hours reading through the forum trying to solve the problem and to understand how everything works, and by what I understood... I bricked the phone?
Firstly, I managed to unlock the bootloader with the HCU Client (Phone unlocked, FRP unlocked). At some points I've managed to boot into TWRP's, but I flashed them without understanding that I should have installed the recommended ones by the guys on this forum instead of the official one, with which I wiped System and Data partition.
I've tried hard but never managed to boot any of the Custom ROMs available, especially the LineageOS 16 which I wanted but later on, through a specific TWRP which gave an error information that it's meant for Hisilicon, and not for Kirin SoC...
I also had no idea when I was booting into recovery, and when into erecovery, because I flashed TWRP over both of them... I have really no idea what was the last thing to happen, but now it seems as if I can't boot into eRecovery anymore, and whatever I try flashing to the recovery_ramdisk over Fastboot, I just always get the same error when trying to boot into recovery
Error! Func NO : 11 (recovery image)
Error NO : 2 (load failed!)
Now I'm also having an issue because my battery has drained and it doesn't seem to turn on without it being connected to the charger or a PC.
Is there anything that I can do to make it work with any Custom ROM?
returnedinformation said:
I've managed to boot into TWRP's, but I flashed them without understanding that I should have installed the recommended ones by the guys on this forum instead of the official one, with which I wiped System and Data partition.
Click to expand...
Click to collapse
This is the result of some people posting nonsense here.
In fastboot mode run commands:
fastboot oem get-build-number
fastboot oem get-product-model
fastboot getvar vendorcountry
fastboot oem oeminforead-CUSTOM_VERSION
fastboot oem oeminforead-SYSTEM_VERSION
and post the results.
-Alf- said:
This is the result of some people posting nonsense here.
In fastboot mode run commands:
fastboot oem get-build-number
fastboot oem get-product-model
fastboot getvar vendorcountry
fastboot oem oeminforead-CUSTOM_VERSION
fastboot oem oeminforead-SYSTEM_VERSION
and post the results.
Click to expand...
Click to collapse
> fastboot oem get-build-number
(bootloader) :ANE-LX1 8.0.0.126(C432)
> fastboot oem get-product-model
(bootloader) ANE-LX1
> fastboot getvar vendorcountry
vendorcountry: hw/eu
> fastboot oem oeminforead-CUSTOM_VERSION
FAILED (remote: 'The reason of failed input oem_nv_item error!')
fastboot: error: Command failed
> fastboot oem oeminforead-SYSTEM_VERSION
(bootloader) :ANE-LX1 9.1.0.132(C432E5R1P7)
-Alf- said:
This is the result of some people posting nonsense here.
In fastboot mode run commands:
fastboot oem get-build-number
fastboot oem get-product-model
fastboot getvar vendorcountry
fastboot oem oeminforead-CUSTOM_VERSION
fastboot oem oeminforead-SYSTEM_VERSION
and post the results.
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Alf is right:
Gather info about your phone with the fastboot commands -Alf- provided.
Using this info, find TWRP that 100% supports your phone. TWRP that is recommended in the "p20 lite basics" thread on XDA.
Start phone in fastboot mode. Use the fastboot boot twrp.img command to TEMPORARILY boot into TWRP (twrp.img must be in the same folder as fastboot.exe)
If TWRP hangs, reboot, try another TWRP
Once you are in TWRP, perform wipe and advanced wipe to clean up EVERY PARTITION (except sdcard) that you've messed up in the internal memory.
wipe data again to enable USB file transfer
Find a ROM for your phone. USE THE INFO FROM STEP 1 to figure out if the rom is REALLY for your model AND hardware revision of the phone. Pay attention to the device serial number and codename! ROMS developers use device codenames to indicate what model is compatible and what isnt. Huawei p20 lite has a total of 7(!!!) hardware revisions, and ROMS for each are different and likely NOT cross-compatible, which means if you install the wrong one, you will end up with a brick or a bootloop.
While TWRP is still on, Transfer ROM.zip to the phone.
In TWRP, use "Install" option to flash the ROM.
DO NOT FLASH TWRP PERMANENTLY! LET THE STOCK RECOVERY BE. FLASHING TWRP TO A/B (DUAL SLOT) DEVICES WILL 99% RESULT IN A BOOTLOOP. MOST MODERN DEVICES ARE A/B.
Flash Gapps if you need.
Reboot. Will take longer to start on the first boot.
Totesnochill said:
Alf is right:
Gather info about your phone with the fastboot commands -Alf- provided.
Using this info, find TWRP that 100% supports your phone.
Start phone in fastboot mode. Use the fastboot boot twrp.img command to TEMPORARILY boot into TWRP (twrp.img must be in the same folder as fastboot.exe)
If TWRP hangs, reboot, try another TWRP
Once you are in TWRP, perform wipe and advanced wipe to clean up EVERY PARTITION (except sdcard) that you've messed up in the internal memory.
wipe data again to enable USB file transfer
Find a ROM for your phone. USE THE INFO FROM STEP 1 to figure out if the rom is REALLY for your model AND hardware revision of the phone. Pay attention to the device serial number and codename! ROMS developers use device codenames to indicate what model is compatible and what isnt. Huawei p20 lite has a total of 7(!!!) hardware revisions, and ROMS for each are different and likely NOT cross-compatible, which means if you install the wrong one, you will end up with a brick or a bootloop.
While TWRP is still on, Transfer ROM.zip to the phone.
In TWRP, use "Install" option to flash the ROM.
DO NOT FLASH TWRP PERMANENTLY! LET THE STOCK RECOVERY BE. FLASHING TWRP TO A/B (DUAL SLOT) DEVICES WILL 99% RESULT IN A BOOTLOOP. MOST MODERN DEVICES ARE A/B.
Flash Gapps if you need.
Reboot. Will take longer to start on the first boot.
Click to expand...
Click to collapse
As I said before
-Alf- said:
some people posting nonsense here.
Click to expand...
Click to collapse
Totesnochill said:
Alf is right:
Gather info about your phone with the fastboot commands -Alf- provided.
Using this info, find TWRP that 100% supports your phone. TWRP that is recommended in the "p20 lite basics" thread on XDA.
Start phone in fastboot mode. Use the fastboot boot twrp.img command to TEMPORARILY boot into TWRP (twrp.img must be in the same folder as fastboot.exe)
If TWRP hangs, reboot, try another TWRP
Once you are in TWRP, perform wipe and advanced wipe to clean up EVERY PARTITION (except sdcard) that you've messed up in the internal memory.
wipe data again to enable USB file transfer
Find a ROM for your phone. USE THE INFO FROM STEP 1 to figure out if the rom is REALLY for your model AND hardware revision of the phone. Pay attention to the device serial number and codename! ROMS developers use device codenames to indicate what model is compatible and what isnt. Huawei p20 lite has a total of 7(!!!) hardware revisions, and ROMS for each are different and likely NOT cross-compatible, which means if you install the wrong one, you will end up with a brick or a bootloop.
While TWRP is still on, Transfer ROM.zip to the phone.
In TWRP, use "Install" option to flash the ROM.
DO NOT FLASH TWRP PERMANENTLY! LET THE STOCK RECOVERY BE. FLASHING TWRP TO A/B (DUAL SLOT) DEVICES WILL 99% RESULT IN A BOOTLOOP. MOST MODERN DEVICES ARE A/B.
Flash Gapps if you need.
Reboot. Will take longer to start on the first boot.
Click to expand...
Click to collapse
Sorry, but I'm already stuck at step 3:
PS C:\adb> fastboot boot twrp.img
Sending 'boot.img' (15652 KB) OKAY [ 0.411s]
Booting FAILED (remote: 'Command not allowed')
fastboot: error: Command failed
returnedinformation said:
Sorry, but I'm already stuck at step 3:
PS C:\adb> fastboot boot twrp.img
Sending 'boot.img' (15652 KB) OKAY [ 0.411s]
Booting FAILED (remote: 'Command not allowed')
fastboot: error: Command failed
Click to expand...
Click to collapse
I see. Some phones have this issue. where bootloader will not allow the "boot" command. Can be for a number of reasons:
1. Bootloader isnt "fully" unlocked, please check with the unlocking guide/service provider (if unlock was a paid service)
2. Bootloader is in "retail" mode, not a "service" mode. Some manufacturers do not intend for bootloader to be unlocked, and ship the devices with a restricted "retail" version that blocks certain commands.
also, why is your fastboot sending the "boot.img" while the command had " twrp img" as a payload?
I take it the bootloader still lets you use the "flash" command? If true, flash TWRP temporarily by "fastboot flash boot twrp.img", restart teh phone using the recovery menu keycombo
returnedinformation said:
> fastboot oem get-build-number
(bootloader) :ANE-LX1 8.0.0.126(C432)
> fastboot oem get-product-model
(bootloader) ANE-LX1
> fastboot getvar vendorcountry
vendorcountry: hw/eu
> fastboot oem oeminforead-CUSTOM_VERSION
FAILED (remote: 'The reason of failed input oem_nv_item error!')
fastboot: error: Command failed
> fastboot oem oeminforead-SYSTEM_VERSION
(bootloader) :ANE-LX1 9.1.0.132(C432E5R1P7)
Click to expand...
Click to collapse
you've mixed apples and oranges nicely .
Try this way out, using HuRupdater
Guide
Downloand TWRP
Here
Totesnochill said:
Some phones have this issue. where bootloader will not allow the "boot" command. Can be for a number of reasons
Click to expand...
Click to collapse
No, there is only one reason - on Huawei devices we do not have a "boot" partition since Android 7.
-Alf- said:
you've mixed apples and oranges nicely .
Try this way out, using HuRupdater
Guide
Downloand TWRP
Here
Click to expand...
Click to collapse
Thank you, I've put them in blender and set it to "lightspeed" mode
I'm sorry, but flashing that TWRP gives me the exact error I've been getting before when trying to boot into Recovery... the fact that the phone can't charge also gives some headache to actually even try to boot into the recovery. I just can't get into.
Edit: The furthest I can get to is that recovery error message.
hi there..was reading about your problem..i'm not sure if the same rules apply to all or most phones with regards to flashing twrp or using fastboot..i'm assuming that they do.
So, are you able to boot into fastboot and/or recovery?
if no to recovery, i guess it may be the wrong twrp, i hope you can at least boot into fastboot without any issues.
Personally i had a xiaomi poco f2 pro 6/128 and then i bought another same model phone but 8/256 from a fellow who almost bricked his phone..it was just blinking, when i restarted the phone, it went straight into blinking whenever i tried to boot into recovery, and it wouldnt boot into system anyway cos there was nothing there. so i figured it was stuck in recovery loop.
i was fortunate that i was able to hook up to it using my pc...then using command prompt, i was able to switch to fastboot mode..then i tried downloading and flashing different twrps, over 10 different twrps, and finally one worked..then it was smooth sailing from then on..and presto, that became my daily use phone.
returnedinformation said:
Thank you, I've put them in blender and set it to "lightspeed" mode
I'm sorry, but flashing that TWRP gives me the exact error I've been getting before when trying to boot into Recovery... the fact that the phone can't charge also gives some headache to actually even try to boot into the recovery. I just can't get into.
Edit: The furthest I can get to is that recovery error message.
Click to expand...
Click to collapse
Can you boot into eRecovery (into TWRP installee over eRecovery)? If so, try to flash eRecovery_ramdisk.img in TWRP,
download Here for EMUI 9.1
or Here for 8.0 (I'm not sure what is your current version).
In eRecovery mode you can charge the phone ( charging should also work in TWRP which is installed instead of eRecovery).
flashgordon65 said:
hi there..was reading about your problem..i'm not sure if the same rules apply to all or most phones with regards to flashing twrp or using fastboot..i'm assuming that they do.
So, are you able to boot into fastboot and/or recovery?
if no to recovery, i guess it may be the wrong twrp, i hope you can at least boot into fastboot without any issues.
Click to expand...
Click to collapse
-Alf- said:
Can you boot into eRecovery (into TWRP installee over eRecovery)? If so, try to flash eRecovery_ramdisk.img in TWRP,
download Here for EMUI 9.1
or Here for 8.0 (I'm not sure what is your current version).
In eRecovery mode you can charge the phone ( charging should also work in TWRP which is installed instead of eRecovery).
Click to expand...
Click to collapse
I can boot to the Fastboot, but unfortunately I can't boot to either recovery or erecovery... When trying to boot to the recovery by holding the power+volume up button until I see the "Your device has been unlocked" warning message + 2 seconds (which is when I see the recovery error message), or when trying to boot while plugged into USB also holding the power+volume up button just leaves me at "Your device is booting now...." forever
returnedinformation said:
I can boot to the Fastboot, but unfortunately I can't boot to either recovery or erecovery... When trying to boot to the recovery by holding the power+volume up button until I see the "Your device has been unlocked" warning message + 2 seconds (which is when I see the recovery error message), or when trying to boot while plugged into USB also holding the power+volume up button just leaves me at "Your device is booting now...." forever
Click to expand...
Click to collapse
doesn't look good bro, try the following :
in fastboot mode run commands
fastboot erase user data
fastboot reboot
-Alf- said:
doesn't look good bro, try the following :
in fastboot mode run commands
fastboot erase user data
fastboot reboot
Click to expand...
Click to collapse
PS C:\adb> fastboot erase user data
Erasing 'user' FAILED (remote: 'Command not allowed')
fastboot: error: Command failed
returnedinformation said:
PS C:\adb> fastboot erase user data
Erasing 'user' FAILED (remote: 'Command not allowed')
fastboot: error: Command failed
Click to expand...
Click to collapse
Sorry!
fastboot erase userdata
PS C:\adb> fastboot erase userdata
Erasing 'userdata' (bootloader) success to erase cryypt info in oeminfo
OKAY [ 0.215s]
Finished. Total time: 0.236s
PS C:\adb> fastboot reboot
Rebooting OKAY [ 0.024s]
Finished. Total time: 0.024s
Okay, what can I do now? I've tried flashing twrp right after that but solely rebooting get's me stuck at "Your device is booting now...", and trying to boot to recovery gives me the same error again
returnedinformation said:
PS C:\adb> fastboot erase userdata
Erasing 'userdata' (bootloader) success to erase cryypt info in oeminfo
OKAY [ 0.215s]
Finished. Total time: 0.236s
PS C:\adb> fastboot reboot
Rebooting OKAY [ 0.024s]
Finished. Total time: 0.024s
Okay, what can I do now? I've tried flashing twrp right after that but solely rebooting get's me stuck at "Your device is booting now...", and trying to boot to recovery gives me the same error again
Click to expand...
Click to collapse
Download stock Recovery Oreo
Link
Flash it in fastboot
fastboot flash recovery_ramdisk RECOVERY_RAMDISK-ANE-8.0.img
- fastboot reboot
Then try to boot into Recovery.
What exactly did you do after unlocking your phone? Did you upgrade back to A9? If so, then flash recovery_ramdisk A9
Download here
-Alf- said:
Download stock Recovery Oreo
Link
Flash it in fastboot
fastboot flash recovery_ramdisk RECOVERY_RAMDISK-ANE-8.0.img
- fastboot reboot
Then try to boot into Recovery.
What exactly did you do after unlocking your phone? Did you upgrade back to A9? If so, then flash recovery_ramdisk A9
Download here
Click to expand...
Click to collapse
I've tried both, they give me the same error.
After I flash the recovery I can't really reboot straight into recovery because of the issue with the battery... somehow I gotta hold the Volume UP key, while catching exact moment when I can unplug USB after the low battery status page passes, and before Huawei logo appears...
After unlocking the phone I flashed TWRP over either recovery or erecovery (idk anymore)... then I probably installed Pixel Experience 13 ROM (https://github.com/ponces/treble_build_pe/releases)
And after that... I tried too many things I can't even remember anymore.
returnedinformation said:
then I probably installed Pixel Experience 13 ROM
Click to expand...
Click to collapse
Under EMUI 8 ??? Which TWRP?

Categories

Resources