Experienced Users - Plz Help - Remove Superuser.apk or Put Stock Back - ROGERS - Captivate General

I got my replacement phone and need to return the original, I already asked for help here - http://forum.xda-developers.com/showthread.php?t=827229 but didn't find mch luck
My issue is that I unrooted and the Superuser app is still there on my phone and I tried to follow the instructions
su
rm -r /system/app/Superuser.apk
rm -r /system/xbin/busybox
rm -r /system/bin/su
I downloaded Terminal app but I type "su" it says invalid command
I also have downloaded the Stock Rogers ROM
Can someone please please either tell me how to
1) Remove Superuser app form the Phone
OR ( better yet in your opinion )
2) Put the stock back ( but have no clue how to do this )
I have tried googling, searching but there is no simple answer and since this will be returned, I ave limited time
So any kind soul can help a fellow Captivator

Have you tried a factory data reset??
You can do that by going to settings>Privacy>Factory Data Reset.
Edit to add: How did you un-root?
Also, how did you root?
2nd edit: Per the Wiki page for your model, you can download the stock rom Here.
Hope that helps

- Factory Data Reset does not remove the Superuse App from the Phone
- I rooted the phone via SuperOneClick 1.5.3
- I unrooted via the App One Lag Fix
I already have the ROM but how do I put it back? or any other way to remove the Superuser APP

Your best option at this point is to flash the rom...
Unfortunately I don't have the file, or a rogers captivate so I can't tell you exactly how to do that.
If you have a .pit file you most likely should use odin.
If not you may need to use clockworkmod.
One of the two should work.

I just have the Rogers Stock Rom downloaded and don't see .pt file in there, I am confused all over. Will Odin3 ask me to choose a rom or it does something else

Dont use -r.
Just use rm system/app/Superuser

inningsdefeat500 said:
I got my replacement phone and need to return the original, I already asked for help here - http://forum.xda-developers.com/showthread.php?t=827229 but didn't find mch luck
My issue is that I unrooted and the Superuser app is still there on my phone and I tried to follow the instructions
su
rm -r /system/app/Superuser.apk
rm -r /system/xbin/busybox
rm -r /system/bin/su
I downloaded Terminal app but I type "su" it says invalid command
I also have downloaded the Stock Rogers ROM
Can someone please please either tell me how to
1) Remove Superuser app form the Phone
OR ( better yet in your opinion )
2) Put the stock back ( but have no clue how to do this )
I have tried googling, searching but there is no simple answer and since this will be returned, I ave limited time
So any kind soul can help a fellow Captivator
Click to expand...
Click to collapse
Root your phone again, and this time remove superuser.apk first.
Not sure how the Rogers captivate is, but you will probably have to use either this method:
http://forum.xda-developers.com/showthread.php?t=797397
or this method:
http://forum.xda-developers.com/showpost.php?p=7561524&postcount=1

Related

I need "su" and "superuser.apk" to get root apps to work

but where the fugg is "su".
I pushed superuser.apk no prblem but were is this extensionless su app??
Reason:
I rooted my gf's hero and need to run titanium to backup all her apps before I flash Fresh 2.1.2 to it. After lots of searching I se I need to put SU on it. Can soeone shed some light...?
scirio said:
but where the fugg is "su".
I pushed superuser.apk no prblem but were is this extensionless su app??
Reason:
I rooted my gf's hero and need to run titanium to backup all her apps before I flash Fresh 2.1.2 to it. After lots of searching I se I need to put SU on it. Can soeone shed some light...?
Click to expand...
Click to collapse
hmm.. you could just use another backup program that doesnt need root. i personally use astro to back up my apps.
assuming that just pushing superuser.apk works, then you should get a prompt when you try to use titanium back up that asks for root access.
su should be in /system/bin and I believe /system/xbin. I had to cp su /system/xbin for Metamorph to work a while ago...
Code:
adb shell
cd /system/bin
ls
see if su is in this folder. if it is then
Code:
cp su /system/xbin
But wait till someone else confirms this...
Also, if you are getting the black super user request screen make sure that you have USB Debugging turned on. Settings>Applications>Development>USB Debugging Mode
"su" is not an app.. "su" is command for "super user"..
"su" is root access.. If the rom you are using is not rooted it will never have "su".. Because the rom will not allow sudo access
*search for appsaver to get the apps from an unrooted rom..
azyouthinkeyeiz said:
"su" is not an app..
"su" is root access.. If the rom you are using is not rooted it will never have "su"..
Click to expand...
Click to collapse
Have to kind of disagree with you here.
he is refering to the SU file that lives in //bin/
Which is technically "executable" when setting suid bits.
But you are correct in that the rom should have that. And if it doesn't...she's not rooted...and you'll need more than just SU eventually...you should go ahead and get busy box installed for TIbackup to use.
Kcarpenter said:
Have to kind of disagree with you here.
he is refering to the SU file that lives in //bin/
Which is technically "executable" when setting suid bits.
But you are correct in that the rom should have that. And if it doesn't...she's not rooted...and you'll need more than just SU eventually...you should go ahead and get busy box installed for TIbackup to use.
Click to expand...
Click to collapse
The su file that lives in //bin/ allows the rom to interact with busybox and supermissions.. It is not an APP just a directory file.. That's like saying on a PC that the DLL files for each program is a program.. It does "execute" but there is not a single file on your computer that isn't "executable" in someway.. I was just saying in layman's terms that he can't do what he wants..
You can't just install that on a Sprint Rom.. He cannot just push busybox into his rom because it is lacking the su file.. And it cannot interact with the Sprint Rom even if you did get it installed somehow...
Yes he rooted the phone, but the ROM is still locked in by sprint until you flash a custom rom.. You have to repackage the rom and reflash it to get those parts into the rom.. Which would not help this guy with what he wants..
*again.. Search for appsaver.. it is the easiest solution for you OP
azyouthinkeyeiz said:
The su file that lives in //bin/ allows the rom to interact with busybox and supermissions.. It is not an APP just a directory file.. That's like saying on a PC that the DLL files for each program is a program.. It does "execute" but there is not a single file on your computer that isn't "executable" in someway.. I was just saying in layman's terms that he can't do what he wants..
You can't just install that on a Sprint Rom.. He cannot just push busybox into his rom because it is lacking the su file.. And it cannot interact with the Sprint Rom even if you did get it installed somehow...
Yes he rooted the phone, but the ROM is still locked in by sprint until you flash a custom rom.. You have to repackage the rom and reflash it to get those parts into the rom.. Which would not help this guy with what he wants..
*again.. Search for appsaver.. it is the easiest solution for you OP
Click to expand...
Click to collapse
I knew it wasn't an "app" but I also figured you guys were smart enough not to hassle me about symantics
Ended up just flashing Fresh 2.1.2 and to hell with her apps.
scirio said:
to hell with her apps.
Click to expand...
Click to collapse
I tell ya what, every time I wipe my wifes phone and wipe out that "My Days" app. She wants to kill me. You'd think she has that schedule memorized...lord knows I do.

Unroot from Super OneClick

Alright guys....Need help. How do I unroot from Super OneClick. I have the official TMobile 2.2 ROM as OTA..however it's failing because its checking to see if its rooted. Pleasant. So If someone could point me in the right direction it would be appreciated.
you sure its 2.2? OTA?
Yup. 100% Sure. 112MB file download. File is called Blur_Version.3.6.360.MB525.T-Mobile.en.US.zip with a Blur_Version.3.6.360.MB525.T-Mobile.en.US.crc file as well. Build.prop indicates that it is 2.2.1 /3.4.2-107-JDN-9/34.4.9. Getting completely hung up on this Status 7 error though. It is picky as hell, and I don't have a out of the box backup I can use to try as stock. It is definitely checking files though. It's like christmas and staring at your presents knowing what it is, but you can't unwrap it. Uggh!!
Root can't be your problem. I've updated to that release; Android 2.2.1, Blur 34.4.9, Build # 3.4.2.107_IDN-9, while my system was rooted. My phone was quite customized (Go Launcher with some "foreign" widgets and no Blur apps/widgets except for the Email app to get at my work e-mail) and everything came up OK. I was rather surprized how smoothly it all went. All my data (seemed to be mostly e-mail) had to be re-synched (this happened automatically), and it took one reboot to clear a message about non-Moto battery that was displayed after the first boot. Basically it all is where it was, except, of course, for root (I tried the latest, 1.7, SuperOneClick but it's looping no matter what I do).
Good luck.
[Added]
Well, well. It turned out that even though it seemed that SuperOneClick was failing (looping at trying to mount a partition R/O) it actually it did it's job! I just fired up RootExplorer and lo and behold a confirmation from Superuser for root popped up, got accepted, and I can start renaming the bloatware again. Woo hoo!
For me it ended up being the root. I was able to unroot with Z4root, and as soon as I did no more issues. I ended up saying screw it and wiped my phone all the way back to factory. Figure it's just better to rebuild it all cleanly and be done with it. I'm just happy its an official rom now.
mind posting a nandroid back up please?
It's really insane to sanction against rooting a phone. I can't image a computer denying me administrator's rights.
runeblade said:
How do I unroot from Super OneClick.
Click to expand...
Click to collapse
You can simply do it manually using Root Explorer. delete followings AS ROOT USER and reboot. that's all!
1. /data/data/com.noshufou.android.su
2. /system/app/superuser.apk
3. /system/bin/su & busybox
Also, it can be done via adb connection.
adb shell
$ su
# mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system
# rm -r /data/data/com.noshufou.android.su
# rm /system/app/superuser.apk
# rm /system/bin/su
# rm /system/bin/busybox
# reboot
I second this.
jboogie3 said:
mind posting a nandroid back up please?
Click to expand...
Click to collapse

Easy root method (Triumph is Factory rooted)

Found this over at SDX Developers
It's so easy a caveman can do it.
http://forum.sdx-developers.com/index.php?topic=17172.0
Be aware that if you do this you have no control over what has root and what doesn't. The "gingerbreak" way, along with the Android SU, does.
couldn't a person just install superuser?
Intercepter said:
couldn't a person just install superuser?
Click to expand...
Click to collapse
yes you can.... ive tested all of the ways of rooting this phone and this one is the easiest! after you do it just install superuser from the market and your all good.
Hey that's my post lol! Yeah well the thing about malware and root access that no one hardly knows is that all these apps that use root exploits to cause harm, they never request su permissions because they use there own exploit to gain root. So superuser wouldn't prompt you on an exploit root being ran. Superuser just prompts when some app requests /system/bin/su or /system/xbin/su. If you want to keep your phone safe its a mater of knowing what you install on your phone. Even with superuser your not safe from root exploit attacks!
Me personally I like nit having to allow everytime I install a new root app. And I know what I install so I never worry about malware.
Sent from my MOTWX435KT using Tapatalk
I noticed that his fix is to basically link su to sudo, which allows "root" programs to run the included superuser applet.
So does this mean someone could just install the SuperUser app without going through the usual rooting process? Is Gingerbreaking unnecessary then?
what concerns me is that if these phones ship with sudo enabled and no root password, then any app can get root without any special effort. That means the Triump is VERY insecure. I'm wondering if we can safely remove sudo and solve that particular problem.
Maybe they did that to make fixing them easier, for when a phone got sent in they could gain root and do whatever they need in it, then turn it back off real quick. This is kinda like the tether menu being hidden but not removed on the OV. How stupid do they think people are?
I don't think it's a question of stupidity - it's more one of knowledge. They don't anticipate the run-of-the-mill user to be digging through the file structure of the phone for something they have no idea of what it does or how it works.
And I'd have to agree - the non-technical people have no desire to start digging through the phone, but rather, to use it as is.
Therefore......
So if this could be made a script. Then we could un-root just as easily for protection. I only need it for barnacle.
root
--------
sudo
ln -s /system/xbin/sudo /system/xbin/su
ln -s /system/xbin/sudo /system/bin/su
unroot
-------
sudo
rm /system/xbin/su
rm /system/bin/su
RIGHT?
Edit: the "shebang" line needs to be changed. Not sure to what. You may be better off just typing in the commands yourself.
Not tested, but this should work.
The root script:
Code:
#!/bin/sh
#filename: rootme
echo "Rooting Device"
sudo
ln -s /system/xbin/sudo /system/xbin/su
ln -s /system/xbin/sudo /system/bin/su
echo 'Root has been achieved'
The unroot script:
Code:
#!/bin/sh
#filename: unrootme
echo "Un-rooting Device"
sudo
rm /system/xbin/sudo /system/xbin/su
rm /system/xbin/sudo /system/bin/su
echo 'Un-root has been achieved'
Make these files somewhere and *cd* to that directory. Type either
Code:
./rootme
or
Code:
./unrootme
Hope this helps someone.
TomXP411 said:
I noticed that his fix is to basically link su to sudo, which allows "root" programs to run the included superuser applet.
So does this mean someone could just install the SuperUser app without going through the usual rooting process? Is Gingerbreaking unnecessary then?
what concerns me is that if these phones ship with sudo enabled and no root password, then any app can get root without any special effort. That means the Triump is VERY insecure. I'm wondering if we can safely remove sudo and solve that particular problem.
Click to expand...
Click to collapse
Yes, that is true that an app could very easily gain root access on the triumph. HOWEVER, as pointed out by b_randon14 above, practically all malware apps use a root exploit to gain root priveliges. This means that even an unrooted device is susceptible. As an example, take a stock samsung captivate. It has no root, and no way to gain root, without flashing a custom rom/kernel. However, if an app used the psneuter exploit, it could still gain root access. (Btw, that is how I originally rooted my captivate, using super one click with the psneauter exploit)
So really, the triumph is no less secure than any other android device. Plus, the triumph is the only android device, aside from dev phones such as the nexus one/nexus s that come pre-rooted. So a triumph specific malware app would have to be written.
Personaly, I like the su+superuser.apk method of rooting, but that is because it is the only method I have ever used. And remember, if you prefer to have su+superuser.apk, you either use gingerbreak, or just use this trick and then install superuser.apk.
Sent from my SAMSUNG-SGH-I897
Yeah and plus an app has to be designed to gain root its not like any old app can just up and decide to request root and start destroying! And stock without any root(I.e. my method or gingerbreak) an app doesn't call /system/xbin/sudo it would call /system/bin/su or /system/xbin/su. Plus I mean if you used gingerbreak you should realize that an app can get root without going through superusrr or calling on su. I mean how else do you think gingrrbreak app gets root in the first place to copy su and superuser? Through the gingerbreak root exploit!!
Sent from my OC'ed Triumph!
The concept of an app being able to gain root makes it just as dangerous as a malignant virus for Android. The only difference is, it's not a virus. It's a nice, helpful, and otherwise very good program. Lucky for us.
I'm working on a batch script that does the same thing as these instructions, anybody vaguely interested in using it (should it be put out)?
primetechv2 said:
The concept of an app being able to gain root makes it just as dangerous as a malignant virus for Android. The only difference is, it's not a virus. It's a nice, helpful, and otherwise very good program. Lucky for us.
I'm working on a batch script that does the same thing as these instructions, anybody vaguely interested in using it (should it be put out)?
Click to expand...
Click to collapse
I wrote one and posted on xda, I think, but the shebang line needs some adjustment to find sh. Hope that helps.
Sent from my rooted Moto Triumph
Why is this not working for me? I downloaded terminal emulator from the market, typed: "sudo" and get:
sudo: permission denied
$
tsac said:
Why is this not working for me? I downloaded terminal emulator from the market, typed: "sudo" and get:
sudo: permission denied
$
Click to expand...
Click to collapse
Did they patch it? These two lines of code run from ADB should "root" the device... and sudo is just there.
adb -d shell sudo ln ln -s /system/xbin/sudo /system/xbin/su
adb -d shell sudo ln ln -s /system/xbin/sudo /system/bin/su
Now you may not be able to run "sudo" alone, you may need to specify a command with it too? Unfortunately I can't try it again, because all of my phones are rooted now
In the event this didn't work, GingerBreak should work regardless.
I'll give it a try when my phone finishes charging.....Thank you
tsac said:
I'll give it a try when my phone finishes charging.....Thank you
Click to expand...
Click to collapse
Sure. although I would still recommend Gingerbreak instead...it's more complete and contains Superuser as an extra security measure.
Sent from my MOTWX435KT using Tapatalk
Never got to try anything....Phones screen is dead. You know how people describe the flashing screen when turned on and off? Well mine flashed once and it has not worked since... Hopefully virgin mobile will honor the 1 year factory warranty. I did absolutely nothing to this phone. It just took a crap. Removal of battery does nothing. Phone will receive calls but there is nothing but a backlight. Tried several different methods. Horrible phone....Should be recalled
Thanks for your trying to help me.
Sent from my reliable homebuilt gaming rig using FireFox
rooted my dad's triumph...question though...couldn't I flash clockworkmod via rom manager or do I have to go the long way?
edit: nvm, i see rom manager doesn't support the triumph

[Q] Superuser permissions

Hello
Have unlocked the phone and installed custom android OS a while ago, but then all of a sudden i do not have root access anymore, even tryed to reinstall the phone. Though i do have a bad feeling about it wasn't needed
My problems is that im unable to give programs root access, it looks like the phone is not rooted acording to the programs.
Also if i try the following:
adb shell
su
then i get "permission denied"
Can't seem to figure out where my flaw is. Even tryed to
Anyone got an idea to what the problem might be? Have looked through the nexus s forum for clues but no luck.
/Fonain
fonain said:
Hello
Have unlocked the phone and installed custom android OS a while ago, but then all of a sudden i do not have root access anymore, even tryed to reinstall the phone. Though i do have a bad feeling about it wasn't needed
My problems is that im unable to give programs root access, it looks like the phone is not rooted acording to the programs.
Also if i try the following:
adb shell
su
then i get "permission denied"
Can't seem to figure out where my flaw is. Even tryed to
Anyone got an idea to what the problem might be? Have looked through the nexus s forum for clues but no luck.
/Fonain
Click to expand...
Click to collapse
Most likely the permissions on the su binary are f'd up (assuming it's present). The easiest fix is just to reflash the su binary (mount /system first) through CWM.
do you by any chance have a guide to do that? or a link to one?
fonain said:
do you by any chance have a guide to do that? or a link to one?
Click to expand...
Click to collapse
There are several rooting guides here if you do not have CWM installed:
http://forum.xda-developers.com/showthread.php?t=1067813
They will go over quite a few things. However, if you are unlocked and have fastboot set up it's as simple as downloading the recovery image, and then using fastboot to flash the recovery (fastboot flash recovery recovery.image.name.img)
Once CWM is installed boot into recovery and flash the su binary here:
http://forum.xda-developers.com/showthread.php?t=682828
well the funny thing is that i already have 2.3.6.1 installed, but i still dont have su rights.
When i try to follow the buttom guide where to install superuser. where it states that i should write "adb remount". Then i get the message back where it says "Operation not allowed", or when i type su i get the message "permission denied".
I seriously don't understand what i have done wrong :S
/Fonain
krohnjw said:
Most likely the permissions on the su binary are f'd up (assuming it's present). The easiest fix is just to reflash the su binary (mount /system first) through CWM.
Click to expand...
Click to collapse
Thanks for this, solved my issue
thanks figured it out
/Fonain
Sorry to bring back an old topic, but Ive petty much done everything and still the SU no permission no root access for everything occurs. NO TIT backup, no rommanager, no nothing T_T, why???
try chmod the folder/file or using sudo
james7132 said:
try chmod the folder/file or using sudo
Click to expand...
Click to collapse
Can you elaborate please. Whats chmod or sudo and how do I go about doing them?

[Q] Cant boot after changing /system attributes using CHMOD

Hi,
i was trying to change the /system permissions using adb shell... commands shown in the attached screenshot
my main purpose was to install CWM for which we need to push modified recovery into /system/bin which requires rw permissions....
to do that i used the command chmod 6 /system from root and then tried to mv recovery file from sd root to /system/bin but that failed
when i checked the /system attributes using stat -c %A /system it returned "d------rw-"
after that i tried to mount the system from shell command but failed... then the phone got hanged and when i removed the USB cable it rebooted straight into recovery...
since the ive tried to check directory listing with adb ls /system command but it returns nothing... adb ls /data also shows only 3 files... i had taken a backup of /system using adb pull but i dont knw how much that'll help...
i did not take any backups before that... was trying to install CWM so that i could take rom backup....
im not able to boot the phone normally...
i would like to know if i can go back to original state?? if not is ther any other solution like flashing a new ROM or something...??
i would like to extract contacts nd messages if possible...
System config:
- Samsung Galaxy S 4G... everything stock
- Rooted!!
thanks in advance...
chi_visor said:
Hi,
i was trying to change the /system permissions using adb shell... commands shown in the attached screenshot
my main purpose was to install CWM for which we need to push modified recovery into /system/bin which requires rw permissions....
to do that i used the command chmod 6 /system from root and then tried to mv recovery file from sd root to /system/bin but that failed
when i checked the /system attributes using stat -c %A /system it returned "d------rw-"
Click to expand...
Click to collapse
'chmod 6 /system' did what you asked it to do. chmod, on a basic level, uses three (3) sets of permissions: global, group, and user. What you effectively did was set the user permissions to rw but blanked out everything else (like chmod 006).
If you can get into the shell, do this:
chmod 755 /system
That should put it back the way it was (7 = rwx for global, 5=rx for group, 5=rx for user)
See if that helps. Report back and let me know.
Real quick; I had my permissions backward. Although you still want 755 it should've read like this:
rwx for user
rx for group
rx for global
I had them backward.
Thanks stephen_w for ur reply...
I cant get into shell when i enter adb shell it throws this message
- exec '/system/bin/sh' failed: Permission denied (13)
any idea??
chi_visor said:
Thanks stephen_w for ur reply...
I cant get into shell when i enter adb shell it throws this message
- exec '/system/bin/sh' failed: Permission denied (13)
any idea??
Click to expand...
Click to collapse
I was worried about something like that. My guess is that your best bet is to see if you can get into download mode and flash a new ROM. Were you on Froyo or GB before? If you were on Froyo & you're trying to get to GB you'll need to insure you flash a ROM with the right boot loaders first, like chadster's KG4 (http://forum.xda-developers.com/showthread.php?t=1183413).
Let me know if I can be of help.
I was worried that I would have to flash a new ROM. Not that i mind doing it but ive not backed up anything!! I'd atleast like to see my contacts somewhere... let me know if that's possible...
So there's no other way to come out of this deadlock??
Im on Froyo... If its possible to roll back to stock Froyo it'll be great... If not i'll go for GB... Ive nothing against GB but i'd like to be sure everything works the way it was b4...
Its great to know you have and understanding of my problem... thanks mate...
chi_visor said:
I was worried that I would have to flash a new ROM. Not that i mind doing it but ive not backed up anything!! I'd atleast like to see my contacts somewhere... let me know if that's possible...
So there's no other way to come out of this deadlock??
Im on Froyo... If its possible to roll back to stock Froyo it'll be great... If not i'll go for GB... Ive nothing against GB but i'd like to be sure everything works the way it was b4...
Its great to know you have and understanding of my problem... thanks mate...
Click to expand...
Click to collapse
If your contacts were set to sync with Google or your carrier, then they will sync back to your phone after you flash. Given you were on Froyo, you can grab one of the Froyo ROMs from the bible (http://forum.xda-developers.com/showthread.php?t=1117554). Those will likely be rooted, deodexed, or something along those lines. If you want pure stock, you can grab that from samfirmware.com. You'll have to register to navigate to the firmware, though. I'd post a link but it wouldn't work right. Just go to the 'mobile' link and look for the SGH-T959V stuff. Either way, KD1 was the latest Froyo out there from Samsung.
Yup... I'll check on samfirmware.com..
sad abt contacts cuz dint sync the latest ones with google...
anyway i'll try the other method...
thanks..
Sorry man. Best of luck to you. Let me know if you get it fixed.
hi stephen_w,
I downloaded the T959VUVKD1 firmware from samfirmware.com....
I used odin to flash it...
after switchin on the phone in download mode... i flashed the firmware by browsing the file in PDA and leaving PIT, BOOTLOADER, Phone and CSC blank...
the process started and after cache.fs... below it was message:Complete(Write) operation failed.... it stopped nd showed fail in red...
i held the power key for a long time but then it started to show a phone linked to the computer with a yellow exclamation sign...
what does this mean?? im not able to boot into either recovery or download mode now...
please help...
ODIN will still see it when it looks that way, so don't fret! I had similar issues before but mine was a faulty download. Try using this one. It's not 100% stock as it's been deodexed, but it should work:
http://www.multiupload.com/7L5YDG8X8V
Ya im downloading tat one... Odin is detecting nd working... so i guess re-flashing should do the trick...
Jus to confirm I should leave fields other than PDA blank rite?
Yes, PDA only & let ODIN decide what should be checked.
Sent from my SGH-T959V using XDA App
Up and running jus like b4...
Thanks bro...
No worries; glad you're working again!

Categories

Resources