[Q] how to switch from lollipop to marshmallow and back with TWRP ? - G 2014 Q&A, Help & Troubleshooting

Hi,
i have a xt1068 with lollipop rooted and with TWRP ver. 22.21.28.titan_retaildsds.retaildsdsall.en.03.reteu
i want to try marshmallow and if not satisfied go back to lollipop.
needing a TWRP flashable marshmallow!
and after... can i make a TWRP backup of my current system, flash the TWRP version of marshmallow (if exist),
and if i want go back to lollipop flashing my backup previously created?

no one? please!

-Turn off device and boot into fastboot mode (Vol. Down + PWR)
-Navigate to recovery from fastboot menu with Vol. Down, then press Vol. Up to select it.
-Once in TWRP: -make a full backup of your device, Tap backup and check 'boot', 'data', 'cache' & 'system'
-make sure and set the backup storage as your SDCard or OTG-USB (if present)
-Enable compression for backup (optional)
Click to expand...
Click to collapse
You say your device is rooted, which means your /system partition is modified and you have a custom recovery installed, thus installing marshmallow via OTA update is not an option for you. Unless you first re-flash stock Lollipop, which is a hassle. As far as I know there is no stock marshmallow flashable zip for TWRP, so your options are:
-Flash stock Marshmallow via fastboot.
OR
-Get someone with an XT1068 to make a clean TWRP backup of stock marshmallow.
Things to note:
-You will have to re-flash TWRP after flashing stock marshmallow via fastboot unless you exclude 'recovery.img' while flashing
-If this is the first time that you're upgrading to marshmallow, that means that your bootloader will be upgraded....and can not be downgraded otherwise you'll hardbrick your device.
-From that point onward you're gonna want to avoid OTA update for marshmallow if you decide to go back to lollipop, otherwise possible hardbrick.
Click to expand...
Click to collapse
Apart from that, if you dislike marshmallow then just do a factory reset via TWRP (clear ART/Dalvik cache, cache & data) then do a restore of the lollipop backup you did.
Bonus TIP: when you flash marshmallow to try it out, you can make a full backup of marshmallow via TWRP then switch to and from lollipop and marshmallow without a PC......unless you screw up your phone in some other way. Good Luck!!!

parsifal968 said:
Hi,
i have a xt1068 with lollipop rooted and with TWRP ver. 22.21.28.titan_retaildsds.retaildsdsall.en.03.reteu
i want to try marshmallow and if not satisfied go back to lollipop.
needing a TWRP flashable marshmallow!
and after... can i make a TWRP backup of my current system, flash the TWRP version of marshmallow (if exist),
and if i want go back to lollipop flashing my backup previously created?
Click to expand...
Click to collapse
Flash cm 13 mm ROM first.. That'll upgrade your boot loader then flash another mm ROM (optional) . going back to lollipop is as easy as flashing a lollipop rom via twrp

Related

[Q] Upgrading to lollipop from pre-rooted kitkat

Hey guys,
Just a quick question.
Back in february 2015 I did everything in the How-to: root, keep and backup DRM keys, etc. [KitKat/Lollipops] guide on my xperia z3c d5803 (downgraded firmware, applied root via exploit, backed up my TA partition, did not unlock bootloader) and then installed latest XZDualRecovery which was v2.8.2 and latest pre-rooted firmware availiable by then which was kitkat 23.0.1.A.5.77.
I would like to upgrade both XZDualRecovery and my firmware to lollipop so, are these steps okay?
1. Boot to recovery, (I like TWRP) and make a nandroid backup
2. Copy sdcard contents to a safe place
3. From http://nut.xperia-files.com/, Download Z3C-lockeddualrecovery2.8.19-RELEASE.flashable.zip
4. Also download latest pre-rooted lollipop flashable as per this same updated guide which is (fw 23.1.A.0.690 (Android 5.0 March 2015) at https://mega.co.nz/#!Y8tTQZgQ!yV5L2u1iEZvpURZVfkaKTdzSEYAdEklmMdSl3EZ6t18 )
5. Also download latest stock ftf firmware as per the guide, from (https://mega.co.nz/#!YYNFwY5a!cHuAuwuHmYW4FRVTNyfWsxn0Cmu9ljWHBHfixlZRW3Q)
5. Delete all files on sdcard (I like a clean install)
6. Put both dualrecovery and pre-rooted flashable zip files on sdcard
7. Using TWRP, flash XZDualRecovery 2.8.18
8. Reboot, make sure it works?
9. Using TWRP, do a normal wipe (in TWRP its called also "factory reset") (Wipe only data, cache and dalvik)
10. Reboot, make sure it works?
11. Then do the last steps from the same guide ( How-to: root, keep and backup DRM keys, etc. [KitKat/Lollipops]) from step 40
Is this okay?
Thanks a lot guys!

dm-verity is disabled on Marshmellow Concept

Hello,
Searched the interweb and xda to find an answer, but still can't find one. I can't seem to update my Marshmallow Concept v3536 to v3550. I tried:
Flashing the 3027 build and relocking the bootloader
Flashing the boot, and the reovery partition of 3037 built serparately and relock
Full wipe my device and installing built 3037 and relock
Also tried this steps and after that updated to 3536 by restoring system and boot partitions. All at no avail. I have to clarify that I did not install SU, so that's not the problem. Also: my TWRP recovery is still available if I unlock my bootloader afterwards.
My device keeps telling me "incremental system update cannot be installed when dm-verity is disabled" if I try to update. I haven't got a TA-backup becuse when I rooted that wasn't possible yet.
Is there a way to get dm-verity back as there's no clear answer to this question on xda.
TIA
(Lol. Misspelled Marshmallow in the title)
OK. Here's how I managed to fix it:
I installed this and flashed the last official firmware with it.
Flashed the 3027 concept rom over it.
I manually flashed TWRP (Flashtool corrupted my boot) with the command
Code:
fastboot flash recovery twrp.img
When I start TWRP choose READ-ONLY mount system.
Wipe dalvik and cache and flash this from within TWRP.
Boot ROM and backup after that from within TWRP if you want to be able to update via OTA (I think this is necessary, but not sure).
After that flash latest (systemless) SuperSU Beta.
Enjoy

Downgrade OxygenOS from 3.5.2 to 3.2.6 with Root / Xposed / Debloat

So I downgraded my Oneplus 3 from 3.5.2 to 3.2.6 and this was kind of a painful process, so I decided to share my experience with you.
If you follow this guide you will successfully downgrade from the latest Community Build to the newly released stable.
Note: Just because this worked for me, doesn't mean that it will work for you! Use this guide on your own risk and always use backups!
You'll need:
- Oneplus with OOS 3.5.2 and modified TWRP
- OxygenOS 3.2.6 Full ROM
- Latest official TWRP
- AndroidSDKSlim (needs Oneplus 3 USB drivers installed)
- SuperSU 2.78 SR1
- Xposed Framework (optional)
- Debloat Script (optional)
Downgrade:
Before you start, please create a COMPLETE backup of all your data.
You will factory reset your phone during the process.
1. Copy OOS 3.2.6 Full ROM, SuperSU, Xposed, Debloat Script to your Oneplus
2. Flash modified TWRP if you haven't already
3. Boot into modified TWRP
4. Select Wipe -> Advanced Wipe -> Select all but internal storage -> Swipe to Wipe
5. Install OOS 3.2.6 Full ROM
6. Reboot into system and use the installation wizard to setup your phone (do not setup fingerprints, or any device PIN)
7. Reboot into bootloader
8. Connect your phone to a PC/Notebook
9. Extract AndroidSDKSlim to your Desktop and copy twrp-3.0.2-1-oneplus3.img into \AndroidSDKSlim\android-sdk-windows\platform-tools
10. Run CMD with admin rights and navigate to \AndroidSDKSlim\android-sdk-windows\platform-tools
11. Run "fastboot flash recovery twrp-3.0.2-1-oneplus3.img" to revert to official TWRP recovery
12. Disconnect your phone and boot into recovery
13. Dirty flash OOS 3.2.6 again (this might sound stupid but it's mandatory)
14. Still in recovery, flash SuperSU, Xposed and Debloat Script
15. Wipe Dalvik & Cache
16. Reboot into system and setup your phone
Thanks for your guide !
Can you just please detail how to revert back to a custom ROM like RR or Nuclear when we come from Oxygen OS 3.5.2 community build ?
darkbash said:
Thanks for your guide !
Can you just please detail how to revert back to a custom ROM like RR or Nuclear when we come from Oxygen OS 3.5.2 community build ?
Click to expand...
Click to collapse
You're welcome.
Unfortunately, I can't provide guides for procedures I never went through.
But I asume that you could just flash any Custom ROM after you completely wiped your phone in step 4. So instead of flashing OOS 3.2.6 afterwards, just flash a custom ROM. Be sure that you have all zips you need on your internal storage and a backup to revert back to, if anything goes wrong. Otherwise you will have to use ADB sideload to install a ROM.
Ok, so I have a Modified TWRP installed already. Question is If I want to flash other ROMS after wiping system,dalvik/cache,data etc. Do I have to Flash official TWRP first followed by firmware,ROM, etc?
or firmware first then ROM and lastly official TWRP?
it's quite confusing.
I made a mistake and I installed the modified recovery installed the 3.5.2 rom and before booting I decided to restore my nand backup so I flashed the official twrp recovery and now I can't go to recovery anymore and the phone doesn't boot.
I imagine I have to sideload the modified twrp again but how do I do that? How do I reboot to bootloader ?
This is the only sign of life
gigeaky said:
I made a mistake and I installed the modified recovery installed the 3.5.2 rom and before booting I decided to restore my nand backup so I flashed the official twrp recovery and now I can't go to recovery anymore and the phone doesn't boot.
I imagine I have to sideload the modified twrp again but how do I do that? How do I reboot to bootloader ?
This is the only sign of life
Click to expand...
Click to collapse
Flash modified TWRP, and the recovery will return. then, follow the guide. it happened to me too.
darkbash said:
Thanks for your guide !
Can you just please detail how to revert back to a custom ROM like RR or Nuclear when we come from Oxygen OS 3.5.2 community build ?
Click to expand...
Click to collapse
First flash modified TWRP than install official 3.2.4 than flash CM ROM or custom ROM
uniQ191 said:
So I downgraded my Oneplus 3 from 3.5.2 to 3.2.6 and this was kind of a painful process, so I decided to share my experience with you.
If you follow this guide you will successfully downgrade from the latest Community Build to the newly released stable.
Note: Just because this worked for me, doesn't mean that it will work for you! Use this guide on your own risk and always use backups!
You'll need:
- Oneplus with OOS 3.5.2 and modified TWRP
- OxygenOS 3.2.6 Full ROM
- Latest official TWRP
- AndroidSDKSlim (needs Oneplus 3 USB drivers installed)
- SuperSU 2.78 SR1
- Xposed Framework (optional)
- Debloat Script (optional)
Downgrade:
Before you start, please create a COMPLETE backup of all your data.
You will factory reset your phone during the process.
1. Copy OOS 3.2.6 Full ROM, SuperSU, Xposed, Debloat Script to your Oneplus
2. Flash modified TWRP if you haven't already
3. Boot into modified TWRP
4. Select Wipe -> Advanced Wipe -> Select all but internal storage -> Swipe to Wipe
5. Install OOS 3.2.6 Full ROM
6. Reboot into system and use the installation wizard to setup your phone (do not setup fingerprints, or any device PIN)
7. Reboot into bootloader
8. Connect your phone to a PC/Notebook
9. Extract AndroidSDKSlim to your Desktop and copy twrp-3.0.2-1-oneplus3.img into \AndroidSDKSlim\android-sdk-windows\platform-tools
10. Run CMD with admin rights and navigate to \AndroidSDKSlim\android-sdk-windows\platform-tools
11. Run "fastboot flash recovery twrp-3.0.2-1-oneplus3.img" to revert to official TWRP recovery
12. Disconnect your phone and boot into recovery
13. Dirty flash OOS 3.2.6 again (this might sound stupid but it's mandatory)
14. Still in recovery, flash SuperSU, Xposed and Debloat Script
15. Wipe Dalvik & Cache
16. Reboot into system and setup your phone
Click to expand...
Click to collapse
worked like magic. Thankyou for this education. it didnt work when i followed other folks. Much appreciated.
So it seems I have booted with 3.5.2 and modified recovery. Now my question is: can I reboot in recovery at step 7 and install the original twrp recovery? Or can I use flashify? As I don't have access to a pc
I did ok but cant use adaway do you have a fix for it?
Enviado do meu ONEPLUS A3003 através de Tapatalk
I'm trying to return to 3.2.6 after trying 3.5.2.
However, after flashing and booting 3.2.6, I boot into fastboot mode and the official TWRP refuses to flash. It reports that it's failed and then I'm left with no recovery until I reflash the modified TWRP.
I could try restoring my Nandroid backup of 3.2.6 with the modified TWRP, but I'd prefer to return to the official TWRP before doing this.
Any suggestions?
Edit: Fixed it. I downloaded the official TWRP again and it flashed. The first download must have been corrupted.
I followed a different method and successfully downgraded today to a former nandroid. I was rooted without xposed.
3.2.6 to 3.5.2 dirty flash
- installed modded twrp
- performed backup on 3.2.6
- installed modded 3.5.2 (the only that flashes in twrp)
- installed root SR1
- wiped caches only
- reboot
3.5.2 to 3.2.6 restore
- downloaded 3.2.6
- boot to modded twrp, wipe both caches, data, system
- flashed 3.2.6 stock and root SR1
- restored 3.2.6
- wiped caches
- reboot
- enjoying my LTE again
Without first installing stock, after a restore my phone was boot locking right after the oneplus white logo (capacitive buttons would light up, but it would not boot to red logo). Had to press vol down and power to force it to boot menu to select recovery and get back to twrp
Hope this helps someone, it's a bit easier than swapping twrps and no need to boot up/flash 3.2.x twice.
So if I am on the CB and want to go back to 3.2.6
I can flash 3.2.6 with the modded TWRP
Then flash Official TWRP and boot?
If I have official recovery, no root, and locked bootloader, can I downgrade from 3.5.3 to 3.2.6 without any problems, just by sideloading the zip in ADB? Thankss
popab said:
If I have official recovery, no root, and locked bootloader, can I downgrade from 3.5.3 to 3.2.6 without any problems, just by sideloading the zip in ADB? Thankss
Click to expand...
Click to collapse
i would also like to know this please
bigup7 said:
i would also like to know this please
Click to expand...
Click to collapse
I did it and it does work perfectly. Just make sure to wipe data from recovery after flashing.
I was on Comunity Build v.3.5.4. I want it back FreeDom v.1.6.
I did:
1. Flash Twrp-3.0.2-19-oneplus3.img.zip. Somebody sugested original twrp 3.0.2.1 from twrp site. For me did NOT work. Phone not booting in recovery with 3021.
2. Advanced wipe. Wipe dalvik cache/cache/system/data
3. Flash Freedom v.1.6. Clean Flash it's safer & better.
Done. System works. Recovery works.
null0seven said:
I was on Comunity Build v.3.5.4. I want it back FreeDom v.1.6.
I did:
1. Flash Twrp-3.0.2-19-oneplus3.img.zip. Somebody sugested original twrp 3.0.2.1 from twrp site. For me did NOT work. Phone not booting in recovery with 3021.
2. Advanced wipe. Wipe dalvik cache/cache/system/data
3. Flash Freedom v.1.6. Clean Flash it's safer & better.
Done. System works. Recovery works.
Click to expand...
Click to collapse
I am on CB Freddom os
I want to go back either to stock or to op3lite.
I cant reboot to recovery.
But adb works yet.
What to do plz suggest.
Sent from my ONEPLUS A3003 using Tapatalk
1. If system don't boot. Reboot to fastboot.
- Flash recovery.img. If PC don't see youre phone option 2.
2. If system boots, open phone like normal.
- Extract recovery img. Put it on the TWRP file on phone sd card.
- Download Flashify from play. Open it, flash img of recovery. Open recovery to chech if it works.
Try with both recovery (3.0.2.0 or modified 3.0.2.-19). One of those will work.
Im getting system partition has unexpected contents after OTA update after installing step 5 ????

[ROM] OxygenOS Open Beta 9 (Nougat) Update and Installation!!

Hi everyone,
We appreciate everyone’s feedback from the OxygenOS Open Beta 8. With your help, we have optimized and improved several key areas.
The changes include:
Added Expanded Screenshots
Shelf Design Optimizations
General UI Optimizations
DPI Optimizations
Battery Performance Optimizations
Stability and Performance Optimizations
General bug fixes
Please visit the download page here:
http://downloads.oneplus.net/oneplus-3/oneplus_3_oxygenos_openbeta_9/
If you’ve already flashed a previous Open Beta build, you will receive this update via OTA. If you haven’t, you will need to flash this build by ADB sideload. Your data may transfer, but there is always a possibility of losing personal data, so be sure to backup all of your important data before flashing this build. As stated before, once you flash the Open Beta, you’ll continue getting Open Beta OTAs.
Please follow the link below for the UI/UX experience survey. We’d really appreciate a few minutes of your time, as it will help us make OxygenOS even better. One last thing: this is a limited program, so we may disable this download link once we receive enough feedback.
- Feedback on UI/UX: https://goo.gl/forms/hEqMPq9U9QNrxvhc2
Note: If you flash this Open Beta build, you’ll receive Open Beta OTAs (but not official OTAs). You’ll need to manually (clean) flash back to our official builds to continue receiving official OTAs. Rolling back to official OxygenOS versions require wiping data and cache.
Thank you for your patience and as always, we look forward to hearing your continued feedback in the bug reporting forum here: https://forums.oneplus.net/feedback/.
Thank you for helping us build a better OxygenOS.
Never settle.
Installation Methods
Before we start:This method is only for the OnePlus 3
Follow the steps correctly otherwise you may brick your device. I am not responsible for any damage to your device, please ensure that your device is at least 60% charged to prevent the accidental shutdown in-between the update process.
Downloads:
Beta 9 Full Zip Official Download
Compatible Stock Recovery
********************* For Stock Non Rooted Users with Stock Recovery *****************
1. Download the appropriate OTA/Full Zip from above link and place it in the root folder.
2. Navigate to Settings > System Updates > Settings Icon > Local Upgrade & Select the OTA File
3. Once selected system would prompt upgrade now
4. Select upgrade now and system would reboot in stock recovery and flash the OTA
5. The installer would itself flash the OTA and reboot the device.
The Device will reboot and your OnePlus 3 is now running on the latest OxygenOS firmware & OS.
PS: The first boot may take some time so keep calm and wait for it to boot.
* After flash is successful go back to recovery and a wipe of cache is recommended.
* If in any case flash is unsuccessful the system would prompt you to download the full 1.4GB zip. So download that and follow the same process as above.
************************ For Rooted Users with TWRP Recovery ************************
Download Beta 9 Full Zip
1. Download the Beta 9 Full Zip on your phone internal memory.
2. Download the Latest SuperSU SR5
4. Reboot To TWRP (Modified 28) & Take a Nandroid of your existing ROM
5. Go to Wipe > Advance Wipe > Select Dalvik & Cache & Swipe to Wipe
6. Install Menu > Select Beta 9 Rom Zip > Swipe to Flash
7. Wipe Dalvik & Cache
8. Flash SuperSU to maintain root
9. Reboot System and Enjoy the Beta 9 Update
* Do not flash Xposed as not compatible with 7.0 builds yet
If you come from a custom rom, i recommend a clean flash and make sure you use the modified TWRP 3.0.2-1.28 as the official one is incompatible with the CB firmware yet.
PS: The first boot may take some time so keep calm and wait for it to boot and the system would boot twice due to flash of supersu so keep calm
PS: Rooted users may either flash the full Beta 9 Zip or they need to flash the previous full zip beta 8 first to overwrite system partition followed by the relevant Beta 9 OTA zip for a successful flash else just the OTA flash would fail with error 7 in TWRP
I was on TWRP (modded) and rooted. Installed the update (OTA) and now my phone just reboots to TWRP no matter what I do (I have even made a factory reset and reinstalled Beta8)
salomaoa said:
I was on TWRP (modded) and rooted. Installed the update (OTA) and now my phone just reboots to TWRP no matter what I do (I have even made a factory reset and reinstalled Beta8)
Click to expand...
Click to collapse
You can't install the ota update on TWRP recovery. You need the stock one.
Try reflashing TWRP recovery via fastboot and then flash open beta 9(not the ota)
salomaoa said:
I was on TWRP (modded) and rooted. Installed the update (OTA) and now my phone just reboots to TWRP no matter what I do (I have even made a factory reset and reinstalled Beta8)
Click to expand...
Click to collapse
Download the recovery at the bottom of the page.
http://downloads.oneplus.net/oneplus-3/oneplus_3_oxygenos_openbeta_9/
Copy it onto your phone with the this Open Beta 9 package.
Start up TWRP, format /dalvik, /cache, /system, /data.
Flash the Open Beta and clean the caches if asked.
Flash the original recovery from TWRP as recovery image, and restart your phone afterwards.
Your phone may boot into the new recovery, then show "Update failed", then do another restart, but after that mine was working.
Does all partitions support f2fs?
smk513 said:
Does all partitions support f2fs?
Click to expand...
Click to collapse
AFAIK, only data partition is f2fs
Sun90 said:
AFAIK, only data partition is f2fs
Click to expand...
Click to collapse
I wonder if the new version is possible...
Thank you for your response.
flashing with twrp will result in recovery booting loop. after downloading ota simply reboot to recovery, download oneolusrecovery from ob9 page. transfer it to phone. select install image in twrp, select reocover, flash as recovery and reboot to recovery. itll show updating.. takes about 20mins
Will modified twrp also not work?
Really? The modified twrp doesnt work? I,ve read the thread in oneplus forum and some are saying it worked for them. :/
Edit: anyways, im on modified twrp, rooted, beta 8, can i dirty flash beta 9?
jfodra said:
Really? The modified twrp doesnt work? I,ve read the thread in oneplus forum and some are saying it worked for them. :/
Click to expand...
Click to collapse
It works. I flashed the full zip with it.
Edit:
Yes you can dirty flash. Everything is working as expected.
jfodra said:
Really? The modified twrp doesnt work? I,ve read the thread in oneplus forum and some are saying it worked for them. :/
Click to expand...
Click to collapse
It will work with full zips !! It won't work it ota updates
As simple as this
Dirty flashed over OB8, everything working fine!
Edit:
Using Modified TWRP
Dirty flashed over OB8, so far no issue's.
Did flash TWRP img after update in TWRP (just to be sure), first boot took a while tho.
Anyone tried supersu?
I have this from yesterday. I was on 3.2.8 from OnePlus site, dated 12.05.16.
Clean flash with TWRP 3.0.2-1.28, thanks to eng_stk. Flash the rom & SuperSU SR5 (if you want root). Refalsh recovery 3.0.2-1.28. Reboot to recovery. If it not works reflash recovery.
Then reboot to system.
I did not flash any mods. All it's ok.
t181 said:
It works. I flashed the full zip with it.
Edit:
Yes you can dirty flash. Everything is working as expected.
Click to expand...
Click to collapse
Oh okay thanks. So is it the same as before? Flash beta 9, flash twrp again, then flash sr5 then reboot?
Edit: Nvrmind, flashed it already and d*mn. It does feel smoother than beta 8. ???
Can it be flashed over modded Open Beta 8 ?
M3ntoR said:
Can it be flashed over modded Open Beta 8 ?
Click to expand...
Click to collapse
Yep. Just make sure to have the full update and not the OTA one. Also, just in case make sure you have the TWRP img and super-su on your phone's memory to be able to flash them again
Any mirror for this? Full zip is downloading really slow and I've already stucked on twrp after OTA Need to dirty flash the full zip, but it is going to dowload around Christmas with that speed...

Proper Upgrade/Flash Firmware

Hello,
I recently wiped my device to start from scratch as in no os. I went into TWRP then wipe and advanced and deleted each option available. Then I downloaded the latest raw firmware I could find which was WW_ZS661KS_18.0410.2108.158_M3.35.19.17-ASUS_1.1.5_Phone-user.raw.zip. After doing a flash_all I obviously wasn't on the latest version of firmware so here is where I get stuck. In order to avoid encrypting the data partition what am I supposed to do to properly upgrade before root? What I ended up doing was;
1. Flash latest RAW firmware
2. Boot into recovery and factory reset
3. Boot into OS, go through basic setup until the home screen
4. Copy latest firmware from ASUS website (WW-18.0410.2203.201) to internal data partition on phone
5. Flash TWRP
6. Boot into TWRP and flash latest firmware
7. Boot to B partition
8. Reboot into recovery and flash firmware again
9. Boot back to A parition
10. Flash twrp on A and B
Is that correct or should I be doing a factory reset / full wipe somewhere in there as well?
Thanks
Why not simply wipe and flash the version of the official firmware you're lookin for with TWRP OR RAW flash flash and upgrade the normal way. And then root. Looks like a lot of unnecessary steps...

Categories

Resources