[Q] Upgrading from 4.0.3 to 4.1+ - Transformer TF300T Q&A, Help & Troubleshooting

I just got my tablet today and im stuck on trying to get it upgraded and rooting it, Ive unlocked it but thats as far as I can seem to go. I cant update from my tablet as "No updates are found".
I did find this thread but it came up with file not found when I went to my firmwre
The Build Number is IM74K.WW_eepad-9.4.3.30-20120604, I looked on the website but couldnt seem to find an update for it.
If it's to root it (Im using Linux) so I can add a Custom ROM then please let me know im still relatively a noob when its comes to rooting etc using Terminal.

If you are still on ICS, you def want to read about nvflash backup. Once you upgrade, this safety net is gone forever !
Sent from my ASUS Transformer Pad TF300T using xda app-developers app

Yes I have just helped someone with this same request.
You can have a look at my how-to upgrade/downgrade for any JB firmware
However as your coming from ICS have a look at my posts on the last page of this thread, page 243. There are detailed steps on how-to upgrade from ICS to JB 10.4.2.9 then to JB 10.4.2.20, you could also go from 10.4.2.9 to 10.6.1.15.3 here but just make sure you have the correct twrp version - see posts for details on which twrp version to flash for each bootloader
Once on a JB firmware you can follow my how-to to jump between any JB firmware.
Just make sure you flash the correct version of twrp for the bootloader your on.
Let me know if you need any help with any of the steps or have any questions

Im currently stuck on trying to flash TWRP to my device. Im using Linux so unsure of what the commands are for "flashing" it via the terminal. Ive got ADB set up and luckily found a script to root my device. I've got it up to JRO0C.WW_eepad-10.4.2.9-20120809 (Android 4.1.1) now but as I said getting the recovery installed is another game.

Related

Kernel/ota questions

I've successfully recovered my tablet using this method. I was trying to update my TF using the batch script method and somehow managed to flash an outdated kernel. I know this because Asus tech support told me that was the reason my TF wasn't receiving the ota to 3.2. However, Asus tech support also told me that I could flash a new kernel by downloading the source code onto my tablet, then the TF would automatically recognize the [.rar] file and install my new kernel; which didn't work out as you might imagine.
I am now on official 3.1 8.4.4.11.and my kernel is v 2.6.36.3-00011-g3eb19ex And I can't get the OTA update. At one time I had official 3.2 [after previously flashing stock 3.1] but decided to try to root when I found out Netflix wasn't officially supported like the EEE pad site says it does.
Every time I try the batch script method, I end up stuck on the eee pad logo screen. Adb is working as well as apx drivers. Ultimate goal here is stock 3.2 rooted with netflix, but at this point I'd settle for stock official 3.2.
Any ideas? Tia
You may get help if you post your QUESTIONS in the correct forum.
This is the development forum....not Q&A.
Sent from my Jailbroken iPhone 4 using Tapatalk.
Thanks for the input. I just felt that that based on the content of the question, it would be better suited here.
you could try the zip file from the thread titled [OTA]Stock 3.2 zip file
And +1 on wrong section. This is not related to developing a new ROM or features for the Eee Pad.
I'm trying to avoid flashing CWM, that's where I end up bricking it.
jdmnash said:
I'm trying to avoid flashing CWM, that's where I end up bricking it.
Click to expand...
Click to collapse
I would suggest you to try Nvflash. it is the easiest way to root that tf.
I think the relationship between nvflash and the TF is complicated.
There are a few bootloaders out there, including the one used by custom roms, as well as the 4 stock ones.
My theory is that the kernel images in the boot and recovery images have to match the bootloader that is on the TF.
Throw in the fact that the bootloader is only written using the nvflash --create command or during the OTA update, and we have TFs with all kinds of different bootloaders going around that won't match what people are flashing. I think this is why CWM breaks whenever there is a stock OTA that rewrites the bootloader. I think most people brick trying to go back to stock from a custom rom. Going from stock to custom usually isn't a problem because the compatible bootloader is flashed in the rooting process.
Is this the first time we've seen an completely unlocked bootloader on Android?
sent from my cyanogen(mod) vision
jdmnash said:
Thanks for the input. I just felt that that based on the content of the question, it would be better suited here.
Click to expand...
Click to collapse
No. Android Development is for "DEVELOPMENT" does this thread have any kind of release? No.
That's why there's a sticky thread that says,
[REF] SEARCH BEFORE POSTING!! All Questions Go In The Q&A FORUM!!
Originally Posted By: mskip
Click to expand...
Click to collapse
ok folks i get it. I'm sorry. Is there anything I can do right now about accidently posting this in the wrong forum? Please forgive me. Mods feel free to move the thread or ban me or both. Whatever the normal punishment is.
Use the NVFlash unroot method here:
http://tabletroms.com/forums/showthread.php?1071-Asus-Transformer-NVFlash-Stock-3.1-Recovery-Roms
That will get it back to stock everything with 8.4.4.5. Then, you can manually install 8.4.4.11 with the download on the Asus website. After that it will recognize the OTA update to 8.6.5.6. Once you've done all that, use the Batch Script for a quick root, and you're done. I did this today. As long as you follow all the steps, it's a breeze.
I don't think it will recognize the OTA update to 8656. Roach's update will work, but not the stock update.
sent from my cyanogen(mod) vision
It will recognize it, because if you follow all the steps I listed, you're completely stock until you run the batch script to root 3.2. I did this myself on my transformer today.
My OP is not very clear, but that is exactly the steps I've followed to get to where I am today. I've given it 2 days to detect the new update and i've got nothing. I'm currently sitting on stock 8.4.4.11 waiting for the OTA.
kingwp1 said:
It will recognize it, because if you follow all the steps I listed, you're completely stock until you run the batch script to root 3.2. I did this myself on my transformer today.
Click to expand...
Click to collapse
How did you root before and what were you running before you went back to stock 8445?
sent from my cyanogen(mod) vision
stock 3.2. I was trying to get rooted 3.2 to get netflix
jdmnash said:
stock 3.2. I was trying to get rooted 3.2 to get netflix
Click to expand...
Click to collapse
Did you ever make a backup with CWM when you had 3.2?
no it was stock 3.2 firmware/recovery
I'm making progress. I'm now on rooted 8.4.4.11... still trying to get to 3.2

How to update to Jelly Bean?

Before anybody says to use the search function, I've been looking through the general topics non-stop for one that applies to my situation, and either it slipped through the cracks (likely) or it doesn't exist (not likely).
Basically, my tablet is rooted and unlocked, and I'm on ICS; the first one that had face unlock in it. I'd really like to update my tab to JB, but I need to be pointed toward directions for updating a rooted and unlocked tab. But on top of that, I also need recent instructions, because I know that earlier attempts at getting this thing updated have resulted in lots of bricked tabs.
If anybody could tell me if it's possible to update my tablet to JB right now, I'd appreciate it, and if someone has figured out how to do it, can you please point me toward that thread? I'd really appreciate it.
-Tim
I'm in the same configuration, custom-ics-rom with twrp recovery on unlocked device.
I believe the first thing to do is enabling NVFLASH, that will make things safer also in the worst cases.
I did that and now hopefully I have an unbrickable device.
I'm a bit confused on how to go forward, I know that there are two versions of twrp, maybe I should install the JB version, booting inside it and then flash the downloaded JB update from ASUS site, or use the twrp for ICS for flashing and after that install the JB version ?
Anyone knows what is the correct option ?
Giuseppe
Tim 13 said:
Before anybody says to use the search function, I've been looking through the general topics non-stop for one that applies to my situation, and either it slipped through the cracks (likely) or it doesn't exist (not likely).
Basically, my tablet is rooted and unlocked, and I'm on ICS; the first one that had face unlock in it. I'd really like to update my tab to JB, but I need to be pointed toward directions for updating a rooted and unlocked tab. But on top of that, I also need recent instructions, because I know that earlier attempts at getting this thing updated have resulted in lots of bricked tabs.
If anybody could tell me if it's possible to update my tablet to JB right now, I'd appreciate it, and if someone has figured out how to do it, can you please point me toward that thread? I'd really appreciate it.
-Tim
Click to expand...
Click to collapse
Keep ICS, as JB will cause much trouble especially if you are rooted, trying to OC and is generally slowein my opinion
I prefer to try it anyway, tomorrow I will try flashing, after all if something will go wrong I should be able to recover with nvflash.
[
QUOTE=grimsonfart;32974661]Keep ICS, as JB will cause much trouble especially if you are rooted, trying to OC and is generally slowein my opinion[/QUOTE]
Thank you, Grim. That's disappointing to hear about JB, but if you think that my current build is better than that (which makes sense considering I've seen at least one thread about downgrading from JB to ICS), then I will keep my tab on ICS for now, and thank you for your input, I appreciate it.
-Tim
If you have twrp recovery, can't you download the jb ROM from the Asus site for your region and flash it in? I'm unlocked and that's how I upgraded one version of jb to another, but my ICS to jb was ota, so in your case I can't speak from experience. There is a full upgrade, and root guide in the general section.
Sent from my ASUS Transformer Pad TF300T using xda app-developers app
I just managed to do what you re looking to achieve.
I m pretty noob so it tok me a whole day to figure it out.
So first download jb update on asus website (pick the right one for ur type of tf300)
Flash it through adb
At that point i got jb installation working but bootloop
So i flashed jb version of twrp (adb)
I then went in recovery and flashed clean rom 2.5 which worked flawlessly
Just for the fun i did factory reset afetrwards and stock jb eventually launched right
Sent from my ASUS Transformer Pad TF300T using xda app-developers app
gst0098 said:
I'm in the same configuration, custom-ics-rom with twrp recovery on unlocked device.
I believe the first thing to do is enabling NVFLASH, that will make things safer also in the worst cases.
I did that and now hopefully I have an unbrickable device.
I'm a bit confused on how to go forward, I know that there are two versions of twrp, maybe I should install the JB version, booting inside it and then flash the downloaded JB update from ASUS site, or use the twrp for ICS for flashing and after that install the JB version ?
Anyone knows what is the correct option ?
Giuseppe
Click to expand...
Click to collapse
I successfully installed jb following the guide on this site, the only thing that was not working was the flashing of the stock rom, neither given options worked (fastboot flash recovery or fastboot flash system) , I discovered that our eepad has a partition nmed staging used for firmware installs. I then flashed with
fastboot flash staging blolb
and all went good.
Btw I find the JB better than ics, more responsive and smoother, and also if it is not yet overcooked.

[Q]

Hi everyone
First off I would like to thank everyone who contributes on this board, I have been lurking for quite awhile even though I dont have any android devices, the reading is very interesting.
I have just got my first android device today delivered from BH Photo (I am in Australia) and have charged and powered it up. I have been reading on the forums about rooting and then unlocking. The android version appears to be 4.0.3 (ICS).
My questions are these:
Should I root this device and unlock the bootloader with ICS, then install TWRP and make a backup of it. Once this is done then update to JB? The firmware of the tablet is (I think this is right) IM74K:US_epad_9.4.5.26-20120720 and the kernel is 2.6.39.4 [email protected] #1
or
Update the device to JB then root it, but Im a bit confused with the unlocking part here what program is used to unlock the bootloader? Is it the Asus one? Also with rooting programs which one is more commonly used for both ICS and JB? Can I apply a manual update of JB using the Ausrtalian version instead of the US one.
Sorry for all the noob questions. I have read the index and after reading it still had some questions.
Thank you for your time
deathwalker01 said:
Hi everyone
First off I would like to thank everyone who contributes on this board, I have been lurking for quite awhile even though I dont have any android devices, the reading is very interesting.
I have just got my first android device today delivered from BH Photo (I am in Australia) and have charged and powered it up. I have been reading on the forums about rooting and then unlocking. The android version appears to be 4.0.3 (ICS).
My questions are these:
Should I root this device and unlock the bootloader with ICS, then install TWRP and make a backup of it. Once this is done then update to JB? The firmware of the tablet is (I think this is right) IM74K:US_epad_9.4.5.26-20120720 and the kernel is 2.6.39.4 [email protected] #1
or
Update the device to JB then root it, but Im a bit confused with the unlocking part here what program is used to unlock the bootloader? Is it the Asus one? Also with rooting programs which one is more commonly used for both ICS and JB? Can I apply a manual update of JB using the Ausrtalian version instead of the US one.
Sorry for all the noob questions. I have read the index and after reading it still had some questions.
Thank you for your time
Click to expand...
Click to collapse
Welcome to the Community!
There are a few on-going threads regarding this same topic. You might want to read those and make sure you understand the lingo/jargon being used (like: fastboot, bootloader, Recovery, adb. etc) as well as what it's for before you start your hacking.
Some things to keep in mind
Currently to have Root access in JB, you need to get root in ICS then use OTA Keeper to maintain Root for JB update.
The Bootloader unlocker tool is from ASUS and needs to communicate with ASUS servers for it to unlock.
Unlocking the bootloader will void your warrenty. Make sure you have a good device before you do it.
You have a version of tablet (9.4.5.26) that is able to use NVFlash that can help recover your tablet during a soft brick.
You should use an update that is appropriate for your device. If it comes with US, stay with US. Installing an update for a different region might not cause problems but there is no guarantee. Best to avoid the possibility by staying with the region it comes with.
For some reading material, I think that my blog post might help give you some additional details. However, I highly suggest that it be used for research only until you are aware of exactly what you are trying to accomplish. Remember to ask questions if things are confusing or if you are wondering what needs to be done next. 'Tis better to ask and be delayed than to be over-eager and bricked.
Hope this helps you during your first steps of XDA Android hacking!
I just got my TF700 last week and I wanted cleanrom on it and this is the order of stuff I did:
1. Unlocked bootloader
2. Nvflash setup
3. Installed TWRP
4. Flashed official Asus update
5. I lost TWRP so I installed it again
6. Flashed cleanrom
Probably not the most efficient way, but it was easy to do and didn't take too long.
hong90 said:
I just got my TF700 last week and I wanted cleanrom on it and this is the order of stuff I did:
1. Unlocked bootloader
2. Nvflash setup
3. Installed TWRP
4. Flashed official Asus update
5. I lost TWRP so I installed it again
6. Flashed cleanrom
Probably not the most efficient way, but it was easy to do and didn't take too long.
Click to expand...
Click to collapse
It's the most efficient way.
I have nothing to add except for the remark that NvFlash is key -- GET IT WHILE YOU STILL CAN!
I'm not even kidding here. It gives you 100% flexibility in doing whatever you wish (up- as well as downgrading, even the bootloader!) and provides a key benefit in recovering your device when that whale-sized piece of excrement hits the large ventilator running at top speed.
Thanks to everyone that has replied to my post. I have successfully rooted the tablet and unlocked the bootloader. Before I do anything else Im going to run NVflash and back it up. I have a quick question though. I have download NVFlash to my computer and extracted it. Do I need to copy it across to the tablet and then enter fastboot? I havent got an extenal sd card will it save the images to the tablet's hard drive?
Cheers
Deathwalker
i followed this video:
https://www.youtube.com/watch?v=J3ypzUaKxvo&feature=youtube_gdata_player
i watched it before i actually did it once or twice to make sure i know what to do. you don't need an external sd card. following the fastboot steps will pull the files that you need onto the internal one in a folder
Last night I used NVFlash to make backup of the tablet. A big thank you to alienedd as I followed his blog and also the guide from androidmobi team and managed to get the img files done. Is there anyway to test bar for wiping the tablet?
Now all I have left to do is install OTA RootKeeper and TWRP, back up the existing tablet and then flash a custom ROM (Im thinking cleanrom)
You don't need OTA Rootkeeper anymore because you have unlocked you're bootloader. And custom roms like Cleanrom are already pre-rooted so after flashing the cleanrom you will have root anyway.

[Q] How to upgrade from ICS bootloader, nowdays?

Hi,
I'm still on ICS bootloader on my TF300T, some unofficial CM based ROM and a new TWRP. How can I update my bootloader to support newest ROMs? Is it possible without ADB (ex. through terminal)? Does anyone have a ASUS ICS OFW, so it's possible to update OTA? Thanks in advance.
vegitto said:
Hi,
I'm still on ICS bootloader on my TF300T, some unofficial CM based ROM and a new TWRP. How can I update my bootloader to support newest ROMs? Is it possible without ADB (ex. through terminal)? Does anyone have a ASUS ICS OFW, so it's possible to update OTA? Thanks in advance.
Click to expand...
Click to collapse
Theres a couple ways safest i've found is normal download and update. As far as ota if your unlocked no luck there but you can download from asus website place on root of sd or internal storage and wait for triangle to come up in notification back like as if ota. I would go through each update starting from where you left of before flashing cm especially going to 10.4.2.20 to 10.6.1.8 as it uses 10.4.2.20 as base for update from there. Remember once on jb bootloader your stuck there cant downgrade back to ics and theres some major changes to 10.6.1.8 and would have to reroot once get there but with the changes becarful as to what recoveries and roms u use once on 4.2.1 u can only use roms based on that and have to use the twrp 2.4.4.0 patched recovery but there are also alot of unknowns as to asus' new update so caution read and ask before flashing because many are bricking with no fix except nvflash right now. So also i would do and nvflash back up as if something should go wrong its your best and only way outnonce on 10.6.1.8 but back up before going through all this because as of now nvflash isnt available for jb 4.2.1. Goodluck and becarful.
Heresna good thread to read and ask questions on how to go about getting to 10.6.1.8 aka 4.2.1 most of all read and ask before getting into a pickle.
http://forum.xda-developers.com/showthread.php?t=2187982
aerdely said:
Theres a couple ways safest i've found is normal download and update. As far as ota if your unlocked no luck there but you can download from asus website place on root of sd or internal storage and wait for triangle to come up in notification back like as if ota. I would go through each update starting from where you left of before flashing cm especially going to 10.4.2.20 to 10.6.1.8 as it uses 10.4.2.20 as base for update from there. Remember once on jb bootloader your stuck there cant downgrade back to ics and theres some major changes to 10.6.1.8 and would have to reroot once get there but with the changes becarful as to what recoveries and roms u use once on 4.2.1 u can only use roms based on that and have to use the twrp 2.4.4.0 patched recovery but there are also alot of unknowns as to asus' new update so caution read and ask before flashing because many are bricking with no fix except nvflash right now. So also i would do and nvflash back up as if something should go wrong its your best and only way outnonce on 10.6.1.8 but back up before going through all this because as of now nvflash isnt available for jb 4.2.1. Goodluck and becarful.
Heresna good thread to read and ask questions on how to go about getting to 10.6.1.8 aka 4.2.1 most of all read and ask before getting into a pickle.
http://forum.xda-developers.com/showthread.php?t=2187982
Click to expand...
Click to collapse
Note: Good info!
You forgot unzip once after download.
tobdaryl said:
Note: Good info!
You forgot unzip once after download.
Click to expand...
Click to collapse
Yea of course good catch. THANKS. Also in some cases may need to rename as in some times when get to 10.4.2.20 or 10.6.1.8 may have to rename. US_epad-user-10.6.1.8.zip of course not alway US could be WW for world wide or etc but as your updating may not always be the case just i've heard of some having to do this. This also works for downgrading and renaming your current firmware version as a previous version to do a reinstall had to do that once to fix a random reboot problem and works. I've heard of some downgrading as far as first jb build but thats as far as i've seen anyone can go.
Good luck as far as getting back to stock not totally sure you may know better than me or can ask some one on the thread i gave you i've never been rooted because affraid to void warranty just to safe but been doing alot of reading a research for when i decide to do so. Rooted like 10 of my passed other phones why not this one eventually just being safe from what i've seen happen to people with this new update.
aerdely said:
Theres a couple ways safest i've found is normal download and update. As far as ota if your unlocked no luck there but you can download from asus website place on root of sd or internal storage and wait for triangle to come up in notification back like as if ota. I would go through each update starting from where you left of before flashing cm especially going to 10.4.2.20 to 10.6.1.8 as it uses 10.4.2.20 as base for update from there. Remember once on jb bootloader your stuck there cant downgrade back to ics and theres some major changes to 10.6.1.8 and would have to reroot once get there but with the changes becarful as to what recoveries and roms u use once on 4.2.1 u can only use roms based on that and have to use the twrp 2.4.4.0 patched recovery but there are also alot of unknowns as to asus' new update so caution read and ask before flashing because many are bricking with no fix except nvflash right now. So also i would do and nvflash back up as if something should go wrong its your best and only way outnonce on 10.6.1.8 but back up before going through all this because as of now nvflash isnt available for jb 4.2.1. Goodluck and becarful.
Heresna good thread to read and ask questions on how to go about getting to 10.6.1.8 aka 4.2.1 most of all read and ask before getting into a pickle.
http://forum.xda-developers.com/showthread.php?t=2187982
Click to expand...
Click to collapse
I'll second this advice. I just upgraded my tablet from ICS yesterday, too, and this is exactly what I did. It worked great. I stopped at the last 4.1 update, though, because CM won't work on 4.2 yet.
And I second^2 the advice about setting up NVFlash before flashing the Jellybean update. I did that, too. Of course, I was doubly motivated by the fact that I had just recovered from a seven-month soft-brick (which was why I was still on ICS).
Anyway, good luck, and enjoy the Jellybean update.
Putting the ILLA in KILLA since 1985
Thanks, I'll NVflash first... Just where do I get androidroot.mobi bootloader from? Can't find it.
vegitto said:
Thanks, I'll NVflash first... Just where do I get androidroot.mobi bootloader from? Can't find it.
Click to expand...
Click to collapse
The NVFlash thread links to a page at androidroot.mobi about the NVFlash release. That page links to a guide. At the bottom of the guide are two things you have to download (there are many links to downloads, but you only need the two that correspond to your OS and tablet). One is the NVFlash binary. You'll know because it only contains one file called NVFlash. The other includes the specific files for your tablet, including the bootloader.
So, just follow the guide on the AndroidRoot.mobi site, and you'll be fine.
Edit: Here's the guide I'm talking about: http://androidroot.mobi/t3_nvflash/
If you're using Windows, you may actually need to download three files, the third being the drivers.
Putting the ILLA in KILLA since 1985
In windows, the android SDK/Fasrboot are more clear to me, so I'll now just download the ROMs and files for later use. Thanks everyone

Troubles rooting after stock update to 4.2

I got my TF700 around April of this year. I rooted it, but left it on the stock 4.1 android it came with. A couple weeks ago, I let it go through with the stock 4.2 upgrade. Mostly fine, but I kept finding things that bugged me. One of which was that my root seemed to only be partly there. I had installed OTA RootKeeper, and it said that it had restored root after the update. What I'm finding though, is that only apps which had root before still do. Anything new gets told there is no root.
So after all that, I decided yesterday to flash to a custom ROM. Since I thought I had root, I installed GooManager to try to put TWRP on for the flashing. It never gave me any errors, but repeatedly just didn't do anything, and attempting to reboot in recovery mode always failed (once I got the "dead android" with the exclamation point, but usually it would just do a normal reboot). That lead me to figure out the no-root problem, so I decided to reinstall root. I tried with the Scott Tool and with Motochopper, but both failed. In the process of trying to fix those issues, I went ahead and did a factory wipe, but still couldn't get them to work.
So that's where I'm stuck. I have a "factory fresh" install of 4.2.1 that is apparently still locked and unrooted. I want to put root back on at a minimum, but would really like to put on a custom ROM. Nothing I have found here or elsewhere has suggested anything that has worked for me. One site suggested that I needed to use the Asus unlocking tool, however I can't find it for download anywhere (all sites point to the Asus site, but it's not providing the download link anymore). Can someone help me get this working?
Get the unlock tool from here (choose "Android" as OS):
http://support.asus.com/Download.aspx?SLanguage=en&m=ASUS+Transformer+Pad+Infinity+TF700T&p=28&s=1
Unlock your device (and void your warranty), then use the fastboot method for installing TWRP, as described on their web page.
_that said:
Get the unlock tool from here (choose "Android" as OS):
...
Unlock your device (and void your warranty), then use the fastboot method for installing TWRP, as described on their web page.
Click to expand...
Click to collapse
Thanks for the link. All the ones I found would not display anything in the OS selector, so nothing was downloadable. I'm working on that step now. Do you have a link to the fastboot method? Other than seeing the term in a few posts, I have no idea what that is or where I would find the directions you mention.
techturtle said:
Thanks for the link. All the ones I found would not display anything in the OS selector, so nothing was downloadable. I'm working on that step now. Do you have a link to the fastboot method? Other than seeing the term in a few posts, I have no idea what that is or where I would find the directions you mention.
Click to expand...
Click to collapse
There's a nice tutorial here: http://forum.xda-developers.com/showthread.php?t=2277112
You can also use Scott's tool: http://forum.xda-developers.com/showthread.php?t=1938129
Just make sure you downlaod the latest TWRP version which is 2.6.3.1
You may find post # 9 from this thread interesting: http://forum.xda-developers.com/showthread.php?t=2429872
Sent from my ASUS Transformer Pad TF700T using Tapatalk 4

Categories

Resources