[COMMUNITY PROJECT] [DEV] New Android Emulator for Testing/Developing Custom Roms - Android Software/Hacking General [Developers Only]

I know the SDK has AVD, but it's outdated and extremely slow. You can install custom roms on it but only older ones because its based on the yaffs2 filesystem and most current roms use EXT4. I had high hopes for bluestacks too but its locked down pretty tight and I don't see us being able to flash roms to it anytime soon. We have emulators for pretty much everything else, something like this shouldn't be too hard if we work at it. Dynamic recompilation seems to be the best way to go, but feel free to give input if you feel otherwise.
I guess our starting point should be here: http://fms.komkon.org/EMUL8/HOWTO.html
The man who wrote the guide above is some high-end developer that builds emulators for Android, but he seems to be pretty knowledgeable. He has an email you can contact him if you need help with a specific thing: [email protected].
As they come in, I'll list all the information regarding developments in this project in the post below.

Reserved

Reserved

Wow! Looks an excellent project for Devs
I have few questions
1. Will be there a possibility to define and emulate specific devices?
2. How ROMs are flashed, the emulator will have a recovery too?
3. How many of you are working on it?

varun.chitre15 said:
Wow! Looks an excellent project for Devs
I have few questions
1. Will be there a possibility to define and emulate specific devices?
2. How ROMs are flashed, the emulator will have a recovery too?
3. How many of you are working on it?
Click to expand...
Click to collapse
1.) One of the goals would be hardware and kernel emulation, I would imagine they could be set as variables where you could input your own kernel and we could make some predefined hardware options for you to choose from. It would be hard but I think it could be done.
2.) I don't exactly know, but seeing as that's how we already do it we could try. Early alphas would probably be more of a "kitchen" where your menu is in the terminal and you manually put your files in the respective folders.
3.) Just me at the moment, I haven't found anyone to help. I haven't really made too much progress either, right now I'm decompiling AVD to figure out how it runs.

If this works, it would be a lifesaver. I say we should PM you any predefined device settings we want, and have a drop down list that automatically sets it. And to emulate recovery I don't see happening like on our devices, but maybe some of the wipe features, and flashing over a current rom? Also anything you need for help I can do, just ask. I'm good at design, and UI, just can't create it myself. And can you possible make it cross platform? Because I switch between windows and Linux.
Sent from my NookTablet using xda app-developers app

evodev said:
If this works, it would be a lifesaver. I say we should PM you any predefined device settings we want, and have a drop down list that automatically sets it. And to emulate recovery I don't see happening like on our devices, but maybe some of the wipe features, and flashing over a current rom? Also anything you need for help I can do, just ask. I'm good at design, and UI, just can't create it myself. And can you possible make it cross platform? Because I switch between windows and Linux.
Sent from my NookTablet using xda app-developers app
Click to expand...
Click to collapse
I'm using Ubuntu 12.04 right now, so it's going to be Linux at first but once its stable enough the plan is to make it cross-platform. And I do need help, I need all the help I can get! Hence community project haha.

flapflip22 said:
I'm using Ubuntu 12.04 right now, so it's going to be Linux at first but once its stable enough the plan is to make it cross-platform. And I do need help, I need all the help I can get! Hence community project haha.
Click to expand...
Click to collapse
I can live with Linux at first. And I know, but I mean any help a non-coder can give. I will at least test it, and give some device specifics, but anything else that I can really do?
Sent from my NookTablet using xda app-developers app

evodev said:
I can live with Linux at first. And I know, but I mean any help a non-coder can give. I will at least test it, and give some device specifics, but anything else that I can really do?
Sent from my NookTablet using xda app-developers app
Click to expand...
Click to collapse
Either way, I appreciate the help! Ill PM you if I need a tester and you should pop in every once in awhile to see how things are coming along. I'm not going to lie, this is harder than I thought it was but it seems do-able the more I study AVD.
I'm thinking we might be able to change the filesystem on AVD to run EXT3/EXT4 and get it to run a little smoother and build it to run without eclipse, then modify it to fit our needs.

That's sound good. And anyone who would get the most use of it would be fine with a terminal based one right now, and you can work on a GUI later unless someone else helps you soon. I'll keep checking as this comes along, hopefully it won't take too long to get a preview working.
Sent from my NookTablet using xda app-developers app

I am too up for testing!
You can use Qt for GUI, its easy.
Its based on C++ and hence is very fast than other GUI libraries.

varun.chitre15 said:
I am too up for testing!
You can use Qt for GUI, its easy.
Its based on C++ and hence is very fast than other GUI libraries.
Click to expand...
Click to collapse
Any chance you would know how to use it and can help him?
Sent from my NookTablet using xda app-developers app

evodev said:
Any chance you would know how to use it and can help him?
Sent from my NookTablet using xda app-developers app
Click to expand...
Click to collapse
Yes I can
You can see my tool in my signature. It is based on Qt

varun.chitre15 said:
Yes I can
You can see my tool in my signature. It is based on Qt
Click to expand...
Click to collapse
That's good. And your sig isn't showing up in the tapatalk app.
Sent from my NookTablet using xda app-developers app

I feel pretty confident in this project, I'm going through Androids source code starting with 1.5

I've been thinking this over, it would be much easier to add EXT3 and EXT4 support to AVD and tweak it for speed. Im working on it now, ill try to get an early alpha out as soon as I can put it together.

flapflip22 said:
I've been thinking this over, it would be much easier to add EXT3 and EXT4 support to AVD and tweak it for speed. Im working on it now, ill try to get an early alpha out as soon as I can put it together.
Click to expand...
Click to collapse
Great
Do lemme know if you need any help with GUI

Originally Posted by flapflip22
I've been thinking this over, it would be much easier to add EXT3 and EXT4 support to AVD and tweak it for speed. Im working on it now, ill try to get an early alpha out as soon as I can put it together.
Click to expand...
Click to collapse
Great
Do lemme know if you need any help with GUI
Click to expand...
Click to collapse
Will do!

I'm not asking for an eta or anything, but have you got anything working yet, or still looking at the code? I really want to try this out soon.
Sent from my NookTablet using xda app-developers app

What is the status?

Related

I want to develop

Hi everybody i was wondering if there was any developer that could help me learn how to develop some roms and stuff for the sgs4g i really want to help. I'm 14 help me please need step by step instructions!!
mods delete please
another clutter prone to happen.
dear ssh678.
even though your ambition is highly admired, there are rules & regulations you need to read prior to posting.
this is probably what you're looking for.
~cheers
That thread is a dead end. What exactly are you trying to do? I can help you a little bit.
Sent from my Galaxy Tab running CM7
this is the wrong place to post questions. mod please move this thread.
chris.... said:
That thread is a dead end. What exactly are you trying to do? I can help you a little bit.
Sent from my Galaxy Tab running CM7
Click to expand...
Click to collapse
I'm just trying to learn how to make roms and kernels so if i wanted to make a rom my way with everything i want with a kernel that i made i would post it and let everybody try im a noob sorry... im just trying to make roms and kernels
ssh678 said:
I'm just trying to learn how to make roms and kernels so if i wanted to make a rom my way with everything i want with a kernel that i made i would post it and let everybody try im a noob sorry... im just trying to make roms and kernels
Click to expand...
Click to collapse
Any programming experience?
Sent from my Galaxy Tab running CM7
chris.... said:
Any programming experience?
Sent from my Galaxy Tab running CM7
Click to expand...
Click to collapse
along with you wanna learn linux?
cause linux experence cough helps tons cough
RaverX3X said:
along with you wanna learn linux?
cause linux experence cough helps tons cough
Click to expand...
Click to collapse
Yeah, plus Linux is awesome anyway
Sent from my Galaxy Tab running CM7
well knowing how to read configure and install via source helps along with compileing kernels.. Hince why linux exp is a major plus
You need either Linux or a Mac to build from source anyway
Sent from my Galaxy Tab running CM7
I'm gonna hijack the thread since the OP is taking too long to reply.
I have some experience with Linux. Programming experience with HTML, Javascript, PHP, Java and C/C++.
Any tips?
FBis251 said:
I'm gonna hijack the thread since the OP is taking too long to reply.
I have some experience with Linux. Programming experience with HTML, Javascript, PHP, Java and C/C++.
Any tips?
Click to expand...
Click to collapse
get eclipse get the android sdk set them up also get the samsung sorce code from Samsung have a look at it
get fimmilar with complying your own kernels from source so on so forth read learn ask questions.
Dont be afraid of soft bricks
chris.... said:
You need either Linux or a Mac to build from source anyway
Sent from my Galaxy Tab running CM7
Click to expand...
Click to collapse
ok i will dual boot linux with windows but i have no programming experience i will be taking classes in highschool but for now nothing so i need some major help thanks for helping! Any linux OS? Which one? i need link thanks! Also need to learn c++ Thanks......HELP!
ssh678 said:
ok i will dual boot linux with windows but i have no programming experience i will be taking classes in highschool but for now nothing so i need some major help thanks for helping! Any linux OS? Which one? i need link thanks!
Click to expand...
Click to collapse
Ubuntu is pretty easy to use
Sent from my Galaxy Tab running CM7
ubuntu is easy to learn.. Read read everything best advice i can give the reason i stated eclipse is u can test of a fake phone via the program without fear of killing ur own device for apps and what not lol thats always a plus
ssh678 said:
ok i will dual boot linux with windows but i have no programming experience i will be taking classes in highschool but for now nothing so i need some major help thanks for helping! Any linux OS? Which one? i need link thanks! Also need to learn c++ Thanks......HELP!
Click to expand...
Click to collapse
You'll wanna learn Java, specifically, Object Oriented Programming. Stick to one of the more popular Linux distributions since it'll be easier to get your computer set up and deal with driver problems and the like. For now, maybe Ubuntu would be your best choice.
Come on, don't blame on me,but do you have any ideas of Linux otherwise this will be a thread with only HOW-TO install Linux and how to fetch repo and mod them to destroy the main reason they were build. TO WORK ON YOUR PHONE !
I don't want to be rude! Im only think that it is senseless to learn first android devin, when you never used Linux befor :/
Sent from my Nexus S using XDA Premium App
Borky_16 said:
Come on, don't blame on me,but do you have any ideas of Linux otherwise this will be a thread with only HOW-TO install Linux and how to fetch repo and mod them to destroy the main reason they were build. TO WORK ON YOUR PHONE !
I don't want to be rude! Im only think that it is senseless to learn first android devin, when you never used Linux befor :/
Sent from my Nexus S using XDA Premium App
Click to expand...
Click to collapse
hate to say it he does have a point with 0 prior experence u might wanna start learning linux first and foremost and work from there
Yeah but this thread is a good idea for people who are halfway there and want to learn
Sent from my Galaxy Tab running CM7
never said it wasnt

[Q]Help getting started with ROM developement

Hi, I am interested in starting some custom ROM work for our device. I am just looking for a little bit of direction on where to start. I understand things are a bit more complicated with our locked bootloader, but I know there is still a lot to be done. What are some good places to start tweaking performance? How about graphics and theming? if there is anything else I should know that would be great. I am not an extremely experienced programmer, but I have some experience and I am fairly comfortable tweaking system stuff. Lastly, Is there any way to get an emulater going for the A2? this would be very helpful for development to save the pain of boot loops and errors on our real device. thanks for everyone's help! Hopefully our development will take off for this phone once we get the bootloader bypass working or get it fully unlocked.
This needs moved to general.
Sent from my MB865 using xda premium
tmease1 said:
This needs moved to general.
Sent from my MB865 using xda premium
Click to expand...
Click to collapse
ok sorry
I just want to get one thing out there. If you want to develop you will NEED Linux. It makes things a lot easier than using windows.
Moved to General to OP's request.
farshad525hou said:
I just want to get one thing out there. If you want to develop you will NEED Linux. It makes things a lot easier than using windows.
Click to expand...
Click to collapse
I am currently quad booting Windows, my custom arch build, ubuntu, and debian, so I am set there! I prefer linux to windows anyways, i mostly use windows just for compatability, but I am in ubuntu right now
lkrasner said:
I am currently quad booting Windows, my custom arch build, ubuntu, and debian, so I am set there! I prefer linux to windows anyways, i mostly use windows just for compatability, but I am in ubuntu right now
Click to expand...
Click to collapse
Wow impressive.. I just use Ubuntu on a virtual machine..
farshad525hou said:
Wow impressive.. I just use an Ubuntu virtual machine..
Click to expand...
Click to collapse
Arch is pretty awesome if you have the patience/time to set it up. It's not that hard, just takes some work to figure it out
lkrasner said:
Arch is pretty awesome if you have the patience/time to set it up. It's not that hard, just takes some work to figure it out
Click to expand...
Click to collapse
You'll also need a ROM kitchen to decompile ROM's, or you could just extract the zip and rezip... only problem is that if you make any major changes you need to write a new updater-script...

Tutorial: Android Internals - Building a Custom ROM, Pt. 1 of 2

This for those this a great , aw some step by step tutorial with in depth nareation on how to truly build Android . I have yet to see a tutorial that is deeper than ripping and repackaging a Rom. This teaches it all to you
Android Development.
http://www.youtube.com/watch?v=1_H4AlQaNa0
In this two-part series, Marko is going to show you how to build a custom Android ROM from scratch. This series will cover:
Building Android From Source
- Setting up your machine
- Getting the source code: git and repo
- Building the source code
- Android project layout - what is what
Building Custom Android ROM
- Customizing the build
- Adding and removing applications
- Rooting the device and modifying users
- Modifying startup process
- Installing native libraries
Modifying Android Frameworks
- About Android frameworks and services
- Sensor service
- Telephony service
- Multimedia framework
I glad to engage in this work. I now start learning
PrakashGD said:
I glad to engage in this work. I now start learning
Click to expand...
Click to collapse
Look here:
http://forum.xda-developers.com/showthread.php?t=1404442
This was way too much. Still didn't help with other problems.
See what it was trying but for a newb want the best tutorial.
Sent from my SPH-L710 using xda app-developers app
This tutorial is brilliant im surprised there isnt more like this!
fabzbear said:
This was way too much. Still didn't help with other problems.
See what it was trying but for a newb want the best tutorial.
Sent from my SPH-L710 using xda app-developers app
Click to expand...
Click to collapse
No offence but If this tutorial is way to much, you should even be considering building a custom rom
JoinTheRealms said:
This tutorial is brilliant im surprised there isnt more like this!
No offence but If this tutorial is way to much, you should even be considering building a custom rom
Click to expand...
Click to collapse
Let me rephrase what I said because I'm reading it now and I can see why it came across like that.
The tutorial is ok and it shows a couple in depth stuff but it doesn't fully cover everything, not the little things I've had to go around xda to find to make my build work.
Simply put it not a full tutorial but it comes close.
Sent from my SPH-L710 using xda app-developers app
AWESOME and thanks for posting, definitely checking this out =D =D =D
i will definitely check this out! thanks!
Does it work on Windows Vista?
Thanks for sharing!
fabzbear said:
This was way too much. Still didn't help with other problems.
See what it was trying but for a newb want the best tutorial.
Sent from my SPH-L710 using xda app-developers app
Click to expand...
Click to collapse
I feel your pain bro.
Wasnt that long ago when I was a noob too
However, I suggest you check out this dudes post. Helped me a lot back then.
peace B|
http://forum.xda-developers.com/showthread.php?t=1862782
Does this really helped anyone??
I just wanna know because i own a non famous android phone which has very less roms and mods so i just wanna use this method to compile
ROMs for my phone from sources like cm repos.
i used to make pots roms for the lg p500, i tried to make one for my atrix 2 and nothing, i asked to some developers of atrix 2 (very famous by the way) and i tell them how i make those ports and they tell me that it was other metod for our atrix 2, and NEVER TELL ME WHAT WAS THAT METOD, I ASK LIKE 3 MORE TIMES AND NEVER GET AN ANSWER. It was depressing :crying::crying::crying:
Hi thanks for posting this tutorial and for your work. One thing would like to ask is if anyone no's of some more links or books as I would like to learn how to code and correct bugs and add features to ROMs or build my own. I would greatly appreciate any help thanks in advance.

Optimus 4X_LS Port for the S3?

Can someone or has this been ported to the s3 yet? It would be pretty amazing.. http://forum.xda-developers.com/showthread.php?p=27873486
I would, but i haven't the slightest idea how to
Neverendingxsin said:
I would, but i haven't the slightest idea how to
Click to expand...
Click to collapse
From my understanding, you have to swap out the patches and it's specific to your device and ROM. I took a look at one of the patcher tools, but it was just a bunch of confusion to me until I can actually sit down and take a look without having to rush. Think you could take a look as well? Greatly appreciated :victory:
STVERDI said:
From my understanding, you have to swap out the patches and it's specific to your device and ROM. I took a look at one of the patcher tools, but it was just a bunch of confusion to me until I can actually sit down and take a look without having to rush. Think you could take a look as well? Greatly appreciated :victory:
Click to expand...
Click to collapse
Yeah ill take a look my issue is that for weeks now my laptop has been pissy and won't run java correctly >.<
Alright looks like im gonna need to get an extra desktop PC setup and running ubuntu definitely won't be happening tonight. Sadly my laptop just can't handle this stuff anymore.
Neverendingxsin said:
Yeah ill take a look my issue is that for weeks now my laptop has been pissy and won't run java correctly >.<
Alright looks like im gonna need to get an extra desktop PC setup and running ubuntu definitely won't be happening tonight. Sadly my laptop just can't handle this stuff anymore.
Click to expand...
Click to collapse
Well, let me know if you figure anything out when you get everything up and running. I'm definitely going to be sitting down tonight and looking into it, I'll report back if I find anything!
I just found this quote in the post; "For all who keep on asking your answers can be found in this thread just search. To use the patch you need your rom's source code then run the patch command on linux and patch your source add the resources and compile. There is no flash zip morphs or anything flash able because AOSP roms are not the same it will be hard to make a flash able zip for all and this is the development section if you don't know what to do then search, read and read some more instead of these consider requests that wouldn't happen. You have to do see stuff yourself something" ... so my question now is, where is the source code for LS RC5(seeing that you run it as well).
STVERDI said:
Well, let me know if you figure anything out when you get everything up and running. I'm definitely going to be sitting down tonight and looking into it, I'll report back if I find anything!
Click to expand...
Click to collapse
Hopefully i can get one setup this weekend, gotta convince my dad to let me setup everything on one of his desktop computers. I'd rather mess around with it using Ubuntu and not windows, but that's just personal preference
STVERDI said:
I just found this quote in the post; "For all who keep on asking your answers can be found in this thread just search. To use the patch you need your rom's source code then run the patch command on linux and patch your source add the resources and compile. There is no flash zip morphs or anything flash able because AOSP roms are not the same it will be hard to make a flash able zip for all and this is the development section if you don't know what to do then search, read and read some more instead of these consider requests that wouldn't happen. You have to do see stuff yourself something" ... so my question now is, where is the source code for LS RC5(seeing that you run it as well).
Click to expand...
Click to collapse
LS RC5 is based off of CM10, so it would be the cyanogen mod 10 source code, which is android 4.1.2 source
Neverendingxsin said:
Hopefully i can get one setup this weekend, gotta convince my dad to let me setup everything on one of his desktop computers. I'd rather mess around with it using Ubuntu and not windows, but that's just personal preference
LS RC5 is based off of CM10, so it would be the cyanogen mod 10 source code, which is android 4.1.2 source
Click to expand...
Click to collapse
Could you possibly give me a link on where to find that?
STVERDI said:
Could you possibly give me a link on where to find that?
Click to expand...
Click to collapse
This tutorial should help
http://forum.xda-developers.com/showthread.php?t=1762641

FROST (Forensic Recovery Of Scrambled Telephones)

Hey guys,
After having nearly lost all my data because android would not recognize my Decryption password I would like to try to compile frost.
I don't know if it will work for the HTC one but I really want to give it a try to help out other people who might have to factory reset due to encrytion problems.
It looks fairly simple to compile it, only I have never compiled any kernel .img before.
Before I actually try to compile it I would like to get advice on how best to do it and what to avoid while compilling.
Again I really want to get this compiled for the HTC one as this had me in a really bad spot.
https://www1.informatik.uni-erlangen.de/frost
I know there are some questions in here but I really do want to get it compiled for you guys in this thread to have a way of possibly recovering encrypted data.
Anyone else up for the challange?
What?
Sent from my HTC One using xda premium
r1tesh said:
What?
Sent from my HTC One using xda premium
Click to expand...
Click to collapse
What sort of reply is that?
I can help you compile it
r1tesh said:
What?
You need to be a bit more specific
Sent from my HTC One using xda premium
Click to expand...
Click to collapse
MacHackz said:
What sort of reply is that?
I can help you compile it
Click to expand...
Click to collapse
Thanks MacHackz. I really think alot of people could benefit from having a tool to recover encrypted data.
All I can say is I'm willing to try everything
gazlufc said:
Thanks MacHackz. I really think alot of people could benefit from having a tool to recover encrypted data.
All I can say is I'm willing to try everything
Click to expand...
Click to collapse
Firstly you need linux, and afaik this will only work on 4.1.2 right now
MacHackz said:
Firstly you need linux, and afaik this will only work on 4.1.2 right now
Click to expand...
Click to collapse
Yeah I seen it will only work on 4.1.2 but lucky enough HTC hasn't update all devices to 4.2.2 yet .
I have a Ubuntu virtual machine setup for doing the compiling. Just installing required items now.
Should have everything setup tomorrow to start compilling
gazlufc said:
Yeah I seen it will only work on 4.1.2 but lucky enough HTC hasn't update all devices to 4.2.2 yet .
I have a Ubuntu virtual machine setup for doing the compiling. Just installing required items now.
Should have everything setup tomorrow to start compilling
Click to expand...
Click to collapse
Seems like you already know how
Edit: After further discussion we have decided to re-open this thread.
For now, lets leave it in general, once some development has been done we can talk about moving it back to development
Just wanted to say thank you for XDA for allowing us to start work in FROST.
I'm currently discussing FROST with a few other XDA'ers who are also interested in helping me out and getting this developed.
Once I know more (hopefully this evening) I will post an update.
Again thanks XDA for allowing this to be done
So u got the thread up, Awesome. Shoot me a pm when ya ready...
Welcome to your new home FROST
I'd like to help as well
I've got Eclipse/ADT set up ready to use for a couple of App ideas I've got. If it's just compiling Android code, I''m happy to help.
I've just finished a degree in Computer Security & Forensics (2:1) with a dissertation on Android security & security awareness. Prior to that I'v been a Systems Analyst and developer for a number of years (Mainframe/Unix/Microsoft). so although I'm fairly new to Android, I know my way roind an IDE or terminal editor and I'm not afraid to get my hands dirty woth code.
Nice to hear man, and looking forward to getting started.
Ive had a few issues with my pc and have got most of it sorted now. So of all goes well i will be able to start work after many delays
And I could definitely use you help if you can man
Sent from my HTC One using xda app-developers app
lol, just have seen this.
The link to the University of Erlangen has some pretty neat resources, but I currently have no android phone to try making such a recovery image for.
For the case of (hopefully) your own phone you are trying to get the /data back: This software relies on the device having been unlocked not long ago. If the device was not unlocked for a week or so, you have no real chance of the keys being still in ram.
If you have a weak PIN, its bruteforce feature might work, if you have a strong one it may take very long. I'd recommend you to make a bit level image of the /data partition just in case (type man dd in your commandline in linux, the dd tool should also be in phone recoveries). And possibly try to encrypt it on your desktop that propably gets it done faster. Also you do not need to make a device specific recovery and you dont need to cross compile.
Also this: http://www1.cs.fau.de/filepool/projects/frost/frost.crackpin.tgz
might just work. Read through the README file in the archive, its straightforward.
thx good thing to konw
There's a reason they freeze the phone. If you hope to recover the keys from a phone that is powered off for anything like 5 mins or more forget it :/ . (The time really depends on the memory chips)
Sent from my GT-I9505 using xda app-developers app
darks1der said:
It looks fairly simple to compile it, only I have never compiled any kernel .img before.?
Click to expand...
Click to collapse
Is thia project still being worked on, @darks1der? It looks promising!
Hey the project is being worked on however it is going slower that expected due to alot of personal issue's.
I hope to have everything resolved ASAP so I can devote my self to FROST
darks1der said:
Hey the project is being worked on however it is going slower that expected due to alot of personal issue's.
I hope to have everything resolved ASAP so I can devote my self to FROST
Click to expand...
Click to collapse
Will FROST be able to recover deleted files from the phones internal storage? I'll send strength your way so that you'll get your life to awesomeness again.
FROST only works if your bootloader is unlocked. Since unlocking your bootloader wipes data you're screwed (unless there's some hack to prevent this for your device bootloader). Image the phone or copy the encryption header and try to brute force/dictionary attack your own password key as much as you want without worrying about data being wiped. Download Kali Linux live CD maybe it has some Android forensics tools I think it does. If not google around for 'android brute force encryption' somebody will have tools to do this.

Categories

Resources