Nexus 5 major software issues - Nexus 5 Q&A, Help & Troubleshooting

Hey guys, i'm posting here because I have a huge issue with my phone.
I think I have an idea of what caused my phone to go haywire, but i'm gonna post my phone specs:
Red Nexus 5 32gb
Rooted
Franco Kernel
4.4.2 (however, I think it may have somehow updated to 4.4.3 OTA somehow, which may be the root of the problems)
TWRP
Nandroid backup but done once i've been experiencing these problems
-The phone boots up normally and then abrubtly freezes.
-The dialogue "Unfortunately, the process com.android.systemui has stopped."
-I press ok, the screen turns black
-"Unfortunately, Update Device has stopped"
-I press ok, shortly after, both prompts pop up again repeatedly.
I literally have no way to get to the home menu, even using Safe Mode.
My main priority is to at least recover my SMS files. And obviously fix my phone..

NotReallyKnown said:
Hey guys, i'm posting here because I have a huge issue with my phone.
I think I have an idea of what caused my phone to go haywire, but i'm gonna post my phone specs:
Red Nexus 5 32gb
Rooted
Franco Kernel
4.4.2 (however, I think it may have somehow updated to 4.4.3 OTA somehow, which may be the root of the problems)
TWRP
Nandroid backup but done once i've been experiencing these problems
-The phone boots up normally and then abrubtly freezes.
-The dialogue "Unfortunately, the process com.android.systemui has stopped."
-I press ok, the screen turns black
-"Unfortunately, Update Device has stopped"
-I press ok, shortly after, both prompts pop up again repeatedly.
I literally have no way to get to the home menu, even using Safe Mode.
My main priority is to at least recover my SMS files. And obviously fix my phone..
Click to expand...
Click to collapse
reflash your rom, or flash another rom. if using stock, you can reflash the factory img or find a rooted stock rom. anyways, you DO want to update to 444, as many bugs have been fixed from 442 to 444. if yoy dont want to lose any data, grab a stock rooted rom and flash it dirty, as in dont wipe a single thing. and your phone can not update itself, only you can let it update. and with you using franco kernel, it can not flash an ota, you would have to do it manually.

simms22 said:
reflash your rom, or flash another rom. if using stock, you can reflash the factory img or find a rooted stock rom. anyways, you DO want to update to 444, as many bugs have been fixed from 442 to 444. if yoy dont want to lose any data, grab a stock rooted rom and flash it dirty, as in dont wipe a single thing. and your phone can not update itself, only you can let it update. and with you using franco kernel, it can not flash an ota, you would have to do it manually.
Click to expand...
Click to collapse
Do you mind linking me a good thread on how to dirty flash a rom? I've been looking all over and i'm getting a lot of results that simply don't work.
Edit:
Nevermind, found out how to use adb. Can you at least tell me where the SMS files are stored? I used Textra.

NotReallyKnown said:
Do you mind linking me a good thread on how to dirty flash a rom? I've been looking all over and i'm getting a lot of results that simply don't work.
Edit:
Nevermind, found out how to use adb. Can you at least tell me where the SMS files are stored? I used Textra.
Click to expand...
Click to collapse
well, theres no such thing. as most everyone will tell you the proper way is to clean flash, you wont find a dirty flashing thread. regardless, im known for my dirty flashing of everything. generally, what you do to dirty flash is make a backup in recovery first, then just flash what you need to flash, without wiping anything. the thing about dirty flashing is that you dont lose any data(while clean flashing you do).
where the sms files are stored, i have no idea. have you checked if your sms app created a file?

simms22 said:
well, theres no such thing. as most everyone will tell you the proper way is to clean flash, you wont find a dirty flashing thread. regardless, im known for my dirty flashing of everything. generally, what you do to dirty flash is make a backup in recovery first, then just flash what you need to flash, without wiping anything. the thing about dirty flashing is that you dont lose any data(while clean flashing you do).
where the sms files are stored, i have no idea. have you checked if your sms app created a file?
Click to expand...
Click to collapse
So what I should do is push the rooted stock rom somewhere into my phone and use TWRP to install it straight?

NotReallyKnown said:
So what I should do is push the rooted stock rom somewhere into my phone and use TWRP to install it straight?
Click to expand...
Click to collapse
right. adb push it to your phone, then flash it in twrp. if the dirty flash doesnt work out(chances are that it will) then you would have to wipe data(factory reset) and reflash.

simms22 said:
right. adb push it to your phone, then flash it in twrp. if the dirty flash doesnt work out(chances are that it will) then you would have to wipe data(factory reset) and reflash.
Click to expand...
Click to collapse
You are a f**king god. It worked perfectly! Thank you so much!
Why isn't Dirty Flashing suggested by most?

NotReallyKnown said:
You are a f**king god. It worked perfectly! Thank you so much!
Why isn't Dirty Flashing suggested by most?
Click to expand...
Click to collapse
because most follow older "proper" ways to flash software. and the proper way to flash, and to make sure all is working as should, is to clean flash. dirty flashing can cause issues, but its issues that are usually fixable. the problem is that most dont know that, or how to fix. 99.99% of issues caused by dirty flashing are caused by corrupt or incompatible data. where a data clearing for that particular app will usually fix. anyways, roms based on the same sourcw, and not far from what you are running, you can dirty flash. roms that have a different base than what you are running, you should factory reset first.

Dirty flashing has the potential of causing conflicts and issues. Of course it is not so bad if you back up your data. One problem though, is you might use your phone for a few weeks before the issues show up, then suddenly you are unable to backup data. So you lost a week or two of stuff.
By the way, I often dirty flash when I run into issues. After that though, it is a good idea to back everything up, wipe, and reflash everything. Limits potential issues arising and also causes of said issues.

wangdaning said:
Dirty flashing has the potential of causing conflicts and issues. Of course it is not so bad if you back up your data. One problem though, is you might use your phone for a few weeks before the issues show up, then suddenly you are unable to backup data. So you lost a week or two of stuff.
By the way, I often dirty flash when I run into issues. After that though, it is a good idea to back everything up, wipe, and reflash everything. Limits potential issues arising and also causes of said issues.
Click to expand...
Click to collapse
issues from dirty flashing do not appear weeks later, dirty flashing issues show up right away. all dirty flashing issues are caused by data, whether corrupt or incompatible. other issues are blamed on dirty flashes, but arent the real cause. issues like app fc's are the most common, and very fixable. the only issues that arent fixable are when you dirtt flash two completely different roms that are based on different sources, or different android versions. i have dirty flashed every single thing ive flashed onto my n5, since december, no issues. the only issue i had dirty flashing my n5 was dirty flashing L over rastakat. and the issue was minor. everything worked great except the status bar didnt go down all the way. why did it mess uo? because of incompatible data from rastakat with the new status bar code in L.

You are correct Simms, but it must be noted that you dirty flash the same version, for dirty flash to work. If just updating a rom it is usually fine, but if they have made a major change then it is not.
Have no tales to tell of my N5, but my Samcrap S3 (cracked the screen and she died, then I bought this bad boy ) had issues that would appear later. Maybe due to the dirty flash. Who knows, that is why I mentioned a clean flash rules that out.
Anyway, backing up everything leads to a carefree life!

Related

Re: [BeanStalk][1.179] Phone freezes after call

Re: [BeanStalk][1.179] Phone freezes after call
I am currently running Beanstalk 1.179. I've noticed with this build, and with at least one prior build I can't recall, that after an incoming phone call of at least a few minutes, the caller hangs up, and shortly after, my phone freezes. I'm all cases that I've noticed it, I've answered the phone while it was locked, and it returns to the lock screen before freezing. I've got the lock screen configured to use a password.
I can't recall anyone else mentioning this previously, so I thought I'd mention it. If it's not happening to anyone else, I'll assume it's my own problem.
Sent from my SGH-I997 using xda app-developers app
bretcb said:
I am currently running Beanstalk 1.179. I've noticed with this build, and with at least one prior build I can't recall, that after an incoming phone call of at least a few minutes, the caller hangs up, and shortly after, my phone freezes. I'm all cases that I've noticed it, I've answered the phone while it was locked, and it returns to the lock screen before freezing. I've got the lock screen configured to use a password.
I can't recall anyone else mentioning this previously, so I thought I'd mention it. If it's not happening to anyone else, I'll assume it's my own problem.
Sent from my SGH-I997 using xda app-developers app
Click to expand...
Click to collapse
prolly bad flash..wipe it all and flashed the rom and gapps again
if that doesn't work, go back to gb stock and start over
qkster said:
prolly bad flash..wipe it all and flashed the rom and gapps again
if that doesn't work, go back to gb stock and start over
Click to expand...
Click to collapse
Thank you for the idea. I was just going over in my mind the ROMs that I have installed since I purchased the phone with an early version of scott.hart.bti's ParanoidAndroid already installed, and while I did not experience the issue with any of the ParanoidAndroid versions I installed, I believe I did also experience it while I was running Unofficial CM10 briefly between PA and BeanStalk. Perhaps the problem is indeed my own device, or something more deeply in the build source than with the build(s) themselves.
FWIW, in almost all instances when I installed a ROM, I always followed the entire procedure recommended by scott.hart.bti, including wiping the dalvik cache, as I did with my most recent install of Beanstalk 1.179.
bretcb said:
Thank you for the idea. I was just going over in my mind the ROMs that I have installed since I purchased the phone with an early version of scott.hart.bti's ParanoidAndroid already installed, and while I did not experience the issue with any of the ParanoidAndroid versions I installed, I believe I did also experience it while I was running Unofficial CM10 briefly between PA and BeanStalk. Perhaps the problem is indeed my own device, or something more deeply in the build source than with the build(s) themselves.
FWIW, in almost all instances when I installed a ROM, I always followed the entire procedure recommended by scott.hart.bti, including wiping the dalvik cache, as I did with my most recent install of Beanstalk 1.179.
Click to expand...
Click to collapse
as you become more familiar with flashing a rom and the principles, you will find that the cook book process may help but some times you may have to deviate from it to make it work.
ex: sometimes you may have to flash cm9 twice to get into the boot screen ..or flashing cm10 twice or reboot twice..or wipe a few extra time.
from my own experience, you have noticed something not working correctly..(sd not recognized, calls being dropped, app FC's and no one else had the same) you may need to start over...back to gb stock via heimdall or odin and work your way up.
the more i had screwed up and had to go back, there more i learned each time.
qkster said:
as you become more familiar with flashing a rom and the principles, you will find that the cook book process may help but some times you may have to deviate from it to make it work.
ex: sometimes you may have to flash cm9 twice to get into the boot screen ..or flashing cm10 twice or reboot twice..or wipe a few extra time.
from my own experience, you have noticed something not working correctly..(sd not recognized, calls being dropped, app FC's and no one else had the same) you may need to start over...back to gb stock via heimdall or odin and work your way up.
the more i had screwed up and had to go back, there more i learned each time.
Click to expand...
Click to collapse
Interesting. I remember that it took me forever to build up the courage to update ParanoidAndroid the first time, and scott.hart.bti's clear and complete cook book process certainly helped get me there. I have broken one of the Beanstalk ROMs once, too, and had to look up how to boot into CWM from power off to reflash.
I'm curious why going back to stock would make a difference. It seems to me that if I a doing a complete flash, wiping everything, than it shouldn't matter if it's a stock ROM or a new ROM. I'd be more nervous about breaking something if I going back to stock, since is a more complete and drastic change.
bretcb said:
Interesting. I remember that it took me forever to build up the courage to update ParanoidAndroid the first time, and scott.hart.bti's clear and complete cook book process certainly helped get me there. I have broken one of the Beanstalk ROMs once, too, and had to look up how to boot into CWM from power off to reflash.
I'm curious why going back to stock would make a difference. It seems to me that if I a doing a complete flash, wiping everything, than it shouldn't matter if it's a stock ROM or a new ROM. I'd be more nervous about breaking something if I going back to stock, since is a more complete and drastic change.
Click to expand...
Click to collapse
yeah...for the most part, while in cwm, factory reset, wipe system, data, cache, dalvik and then flashing a new rom work very well.
occasionally, for what ever reason that i'm not sure, going back to stock..changing file system back to rfs and then changing back to ext4 may be needed to fix certain problems...not common and not routine practice, but is needed...at least imo
OK, fair enough. I will read up more on going back to stock so I'm not unfamiliar with it. Which tool do you prefer?
For completeness of troubleshooting info for anyone else who may be reading, I received a phone call yesterday while the lock screen was disabled, and the phone still froze after the caller hung up. I received another call today, and made sure I hung up first, and no freeze, my phone was fine.
Sent from my SGH-I997 using xda app-developers app
bretcb said:
I will read up more on going back to stock..
Which tool do you prefer?
Click to expand...
Click to collapse
Everyone has their own prefs...I prefer heimdall. It doesn't matter. Whatever it takes to get the job done. You prolly should buy a usb jig too.
http://forum.xda-developers.com/showthread.php?t=1437548

Flashing new roms

I have tried to do this a couple of times since the new version of BMM came out. I followed all of the instructions to make it work. Then I flashed PACman and I got stuck on the loading (seemed like a bootloop) screen for like half an hour. And no matter what ROM that I use this seems to be happening. I would like to use either the PACman or AOKP that alerted has up. Any suggestions?
at2smithjason said:
I have tried to do this a couple of times since the new version of BMM came out. I followed all of the instructions to make it work. Then I flashed PACman and I got stuck on the loading (seemed like a bootloop) screen for like half an hour. And no matter what ROM that I use this seems to be happening. I would like to use either the PACman or AOKP that alerted has up. Any suggestions?
Click to expand...
Click to collapse
Did you flash the gapps too?
If it were me, I'd FXZ back to stock ICS then root, install BMM, boot into BMM, factory reset, flash ROM, flash gapps then reboot. Works for me every time.
Brought to you by time and relative dimensions in space.
I always make sure that I get the proper gapps.apk file for the version of the rom that I am installing. I think that the only thing that you are doing different than me is the factory reset. Thanks. I will give this a try and i will keep my fingers crossed.
at2smithjason said:
I always make sure that I get the proper gapps.apk file for the version of the rom that I am installing. I think that the only thing that you are doing different than me is the factory reset. Thanks. I will give this a try and i will keep my fingers crossed.
Click to expand...
Click to collapse
You no do factory reset before flashing ROM? That's the cause for bootloop.
And if you have BMM set up and different ROMs on various systems, then doing a factory reset on any system wipes other systems too. You just have to delete the partitions for that system in order to delete it.
And btw Gapps come in flashable zip and not apk
Remember, if you're trying to flash any of the Kexec based ROMs (like anything posted by deveshmanish) and you keep getting stuck at the boot screen, then you may be one of the unlucky "Kexec - rejects" like myself.
If so, then none of those ROMs will work for you. You need to try one of the non-kexec versions. There are several by different devs.
Sent from my personal phone thingy.

"Can't Connect to Camera" on AOSP only

As the title states, I can't get my camera to run on any AOSP ROMs. Camera works fine as soon as I switch to something TW based, but breaks as soon as I load anything AOSP.
I've searched everywhere I can think for this issue and have tried solutions that have worked for others but with no success. I've tried flashing back to stock unrooted, then rooting and starting all over again. I've tried copying cameradata files from TW based to AOSP (in several variations). I've tried reflashing (and I've done nothing but clean flashes each time I'm flashing anything). If it matters, my normal method is to wipe data/factory reset, then clear cache and dalvik, then install ROM + gapps, and then reboot.
I'm using CWM touch recovery v6.0.2.3, firmware VRBMF1 (and one or two others), and have tried leankernel in addition to stock kernels.
It may be worth mentioning that this is a refurbished device and I used Casual's One Click Root, whereas previously (Jan 2013) I rooted the long way and had no issues with anything really.
I had this problem for months. I did a clean install and it fix the problem. Try doing that and it might work for you too.
What do you mean by clean install?
Gigatrig said:
What do you mean by clean install?
Click to expand...
Click to collapse
He's probably meaning to wipe everything in CWM. Data, system, sdcard, etc. Pretty much everything and you'll probably fix your problem. Maybe even flashing latest firmware again wouldn't hurt.
Sent from my SCH-I535 using xda app-developers app
kude87 said:
He's probably meaning to wipe everything in CWM. Data, system, sdcard, etc. Pretty much everything and you'll probably fix your problem. Maybe even flashing latest firmware again wouldn't hurt
Click to expand...
Click to collapse
Do you mean in the "mounts and storage" menu? Use format /system... /data... /sdcard? I think that's what you mean, but I've not had to use those before, so I wanna make sure.
Thanks
:laugh:
Gigatrig said:
As the title states, I can't get my camera to run on any AOSP ROMs. Camera works fine as soon as I switch to something TW based, but breaks as soon as I load anything AOSP.
I've searched everywhere I can think for this issue and have tried solutions that have worked for others but with no success. I've tried flashing back to stock unrooted, then rooting and starting all over again. I've tried copying cameradata files from TW based to AOSP (in several variations). I've tried reflashing (and I've done nothing but clean flashes each time I'm flashing anything). If it matters, my normal method is to wipe data/factory reset, then clear cache and dalvik, then install ROM + gapps, and then reboot.
I'm using CWM touch recovery v6.0.2.3, firmware VRBMF1 (and one or two others), and have tried leankernel in addition to stock kernels.
It may be worth mentioning that this is a refurbished device and I used Casual's One Click Root, whereas previously (Jan 2013) I rooted the long way and had no issues with anything really.
Click to expand...
Click to collapse
I had the same problem with my phone, I made a thread a little while ago with what I did. http://forum.xda-developers.com/showthread.php?t=2492304 ask any questions you have on there I want to improve it as this was a very frustrating and time consuming fix for me.

4.4.3 introduced previously nonexistant bugs for me...

Hello, am I the only one experiencing bugs that I didn't have before since upgrading to 4.4.3?
To be specific: I never had the mm-camera-daemeon bug before updating, now I see it in the battery statistics! I thought 4.4.3 was supposed to fix this, not introduce it for people who previously didn't have it.
Also, this might just be me, but the speaker and headphone volume seem quieter than before, which again, I thought this bug was supposed to be fixed.
I installed the factory image from google with fastboot, but didn't wipe the data.
Any thoughts?
the camera deamon itself is not a bug, itll show up if you use the camera. what was a bug is that it continued to drain battery after the camera was used.
simms22 said:
the camera deamon itself is not a bug, itll show up if you use the camera. what was a bug is that it continued to drain battery after the camera was used.
Click to expand...
Click to collapse
But this is showing up after rebooting, and I haven't used the camera for a few days. I also don't have any apps like skype that may be accesing it. Maybe I'm just being paranoid though.
I always recommend wiping when updating Android versions. The Same principles as custom ROMs actually apply to stock too. Of you have bugs, rule out your data and legacy settings first by wiping data
Sent from my Nexus 5 using Tapatalk
rootSU said:
I always recommend wiping when updating Android versions. The Same principles as custom ROMs actually apply to stock too. Of you have bugs, rule out your data and legacy settings first by wiping data
Sent from my Nexus 5 using Tapatalk
Click to expand...
Click to collapse
Yeah, I know it's a good idea, but I'm always hesitant to do so since my internet speed is around .25 mbps. Redownloading apps takes a looong time. I suppose there's always backup solutions though.
iJimaniac said:
Yeah, I know it's a good idea, but I'm always hesitant to do so since my internet speed is around .25 mbps. Redownloading apps takes a looong time. I suppose there's always backup solutions though.
Click to expand...
Click to collapse
Yeah you can use helium.
Sent from my Nexus 5 using Tapatalk
No issues here
iJimaniac said:
Hello, am I the only one experiencing bugs that I didn't have before since upgrading to 4.4.3?
To be specific: I never had the mm-camera-daemeon bug before updating, now I see it in the battery statistics! I thought 4.4.3 was supposed to fix this, not introduce it for people who previously didn't have it.
Also, this might just be me, but the speaker and headphone volume seem quieter than before, which again, I thought this bug was supposed to be fixed.
I installed the factory image from google with fastboot, but didn't wipe the data.
Any thoughts?
Click to expand...
Click to collapse
I have no issues, but I waited for the OTA and sideloaded it because I didn't want to wipe my data.
Dirty flashing is almost always a bad idea, if you have problems your just going to have to reset your device.
Yet everyone insists on doing it because they can't wait a day for the OTA to drop
Happens every time there's a new Google version put out, tons of people with issues because they dirty flashed the factory image.
Lesson
Wait for the OTA to sideload or install the factory image and let it reset your device as it's designed to do.
movielover76 said:
I have no issues, but I waited for the OTA and sideloaded it because I didn't want to wipe my data.
Dirty flashing is almost always a bad idea, if you have problems your just going to have to reset your device.
Yet everyone insists on doing it because they can't wait a day for the OTA to drop
Happens every time there's a new Google version put out, tons of people with issues because they dirty flashed the factory image.
Lesson
Wait for the OTA to sideload or install the factory image and let it reset your device as it's designed to do.
Click to expand...
Click to collapse
Actually, I flashed it because I had modified the /system partition and my limited understanding of how Nexus devices update told me the ota wouldn't work with a modified system. Is this correct, or does the modified system only keep your device from receiving the ota, not sideloading it? This is the first device I've had that actually receives official updates, so I'm new to this.
Modified system
iJimaniac said:
Actually, I flashed it because I had modified the /system partition and my limited understanding of how Nexus devices update told me the ota wouldn't work with a modified system. Is this correct, or does the modified system only keep your device from receiving the ota, not sideloading it? This is the first device I've had that actually receives official updates, so I'm new to this.
Click to expand...
Click to collapse
If your not stock your right, the OTA will likely fail. You can get away with being rooted, you'll just lose root.
Unfortunately everyone wants to get away without clearing and reseting their device and it leads to problems when people dirty flash the factory image.
If your not stock and want the latest update, your best bet is to bite the bullet and install the full factory image the way it was intended.
Clearing the device at the same time with the factory image, or installing one of the pre-rooted roms that comes out shortly after the new version drops. (Again clearing user data)
It's part of the price that comes with tinkering with your device.
movielover76 said:
If your not stock your right, the OTA will likely fail.
Unfortunately everyone wants to get away without clearing and reseting their device and it leads to problems when people dirty flash the factory image.
If your not stock and want the latest update, your best bet is to bite the bullet and install the full factory image the way it was intended.
Clearing the device at the same time with the factory image, or installing one of the pre-rooted roms that comes out shortly after the new version drops. (Again clearing user data)
Click to expand...
Click to collapse
Alright, good deal! Now I know for next time, thanks

Just rooted, froze apps, and now stuck on Verizon screen

I just rooted last night and everything was good... This morning all I did was freeze some of the stock Verizon apps, and the system crashed. Now when it reboots, it's stuck at the Verizon screen. I can access Bootloader/Recovery, and have tried "fastboot erase cache" but that hasn't fixed it. If I let it sit, I can hear notifications and stuff in the background (I also have MightyText installed, and can send/receive texts via that), so Android is running in the background - it's just "stuck" on this Verizon screen. I'd really rather not have to do a factory reset, since I just spent last night getting everything set back up from the root process.
Any suggestions? Please help!
Uncertain. Just a shot in the dark but which recovery do you have? Have you tried doing a "fix permissions" within it?
Drunkula said:
Uncertain. Just a shot in the dark but which recovery do you have? Have you tried doing a "fix permissions" within it?
Click to expand...
Click to collapse
TWRP. Just did that now, no changes.
You may have froze something you shouldn't have. At this point, I'd personally do a full wipe and reflash the ROM. If not on a ROM and on the stock RUU ROM. I would:
1) consider flashing a stock based ROM:
This ROM is 100% stock based off RUU -
http://forum.xda-developers.com/ver...-4-17-605-9-stock-resources-firmware-t3196906
2) run RUU again, and freeze one app at a time to narrow down what may have caused this.
3) you can try a wipe of just cache/dalvik cache
andybones said:
You may have froze something you shouldn't have. At this point, I'd personally do a full wipe and reflash the ROM. If not on a ROM and on the stock RUU ROM. I would:
1) consider flashing a stock based ROM:
This ROM is 100% stock based off RUU -
http://forum.xda-developers.com/ver...-4-17-605-9-stock-resources-firmware-t3196906
2) run RUU again, and freeze one app at a time to narrow down what may have caused this.
3) you can try a wipe of just cache/dalvik cache
Click to expand...
Click to collapse
Thanks, yeah I just wiped and flashed a ROM. I needed my phone running in the next two hours, and didn't have the time to investigate. Hopefully it doesn't happen again.
dajoip said:
Thanks, yeah I just wiped and flashed a ROM. I needed my phone running in the next two hours, and didn't have the time to investigate. Hopefully it doesn't happen again.
Click to expand...
Click to collapse
Next time when you're cleaning out Verizon bloat, don't take out anything that you're not sure of.
Leave in there: VZWAPN and vzwdummylibs if you dump any Verizon apps.
Besides being able to start the phone, it's got to be able to send and receive calls. I have learned this thru bad decisions and their results.....

Categories

Resources