• If you are experiencing issues logging in, we moved to a new and more secure software and older account passwords were not able to be migrated. We recommend trying to reset your password, then contacting us if there are issues.
  • Nearly done! Migration cleanup is mostly done. There are a small number of issues left that we continue to work on, but all the heavy lifting is done. We still would love to hear feedback over at this thread and also check out the new XDA app! Thanks and we hope you enjoy the new forums, and thanks for your support of XDA <3

[RECOVERY][OFFICIAL] TWRP 3.4.0-0 [I9305]

ripee

Recognized Developer / Recognized Contributor
Aug 25, 2014
3,289
6,128
113
tiny.cc


Team Win Recovery Project 3.x, or twrp3 for short, is a custom recovery built with ease of use and customization in mind. Its a fully touch driven user interface no more volume rocker or power buttons to mash. The GUI is also fully XML driven and completely theme-able. You can change just about every aspect of the look and feel.

Code:
* [B][U]Your warranty is now void.[/U][/B]
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or your getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.

Odin
- Odin3 v3.13.3

Heimdall
- Glass Echidna

Bootloader and modem
- I9305XXUFQG1_I9305XXUFQG1.tar

TWRP for Samsung Galaxy S III (International LTE)



How to flash TWRP with Odin
1. If your phone is turned on normally, turn on Advanced reboot in Developer options and select "Download" from the Restart menu. Alternatively, power it off and press the Power, Volume Down, and Home buttons simultaneously. When the blue screen appears, release all 3 buttons and press Volume Up.
2. In Odin, import the appropriate twrp.tar file for your variant with the "AP" and press the "Start" button.
3. Pull the battery as soon as your phone vibrates.
4. You can then boot directly into TWRP by pressing the Power, Volume Up, and Home buttons simultaneously. Release all three buttons as soon as you see the boot screen ("Samsung Galaxy S III").


How to flash TWRP within a previous version of TWRP
1. If your phone is turned on normally, turn on Advanced reboot in Developer options and select "Recovery" from the Restart menu. Alternatively, power it off and press the Power, Volume Up, and Home buttons simultaneously. Release all 3 buttons when the boot screen appears ("Samsung Galaxy S III").
2. In TWRP, tap "Install" then "Install Image".
3. Navigate in the folder structure to the location of the appropriate twrp.img file for your variant and tap it.
4. Select the "Recovery" radio button.
5. Move the slider to the right to flash the TWRP image.
6. Tap "Reboot System" or, alternatively, tap the back arrow 3 times to return to the main menu, then tap "Reboot" and "Recovery" to reboot into the TWRP image you have just flashed.

Changelog
- See post #2.

Bugs
- You tell me!

Credits
- Option58, rgib, stek-kravari, and every other open source developer and user who contributes directly or indirectly to the TWRP community in the development of and in providing feedback for the i9305.

Sources
- Option58
- rgib
- i9305 repository
- TWRP repository

XDA:DevDB Information
TWRP 3.4.0-0, ROM for the Samsung Galaxy S III I9300

Contributors
ripee
ROM OS Version: 7.x Nougat
ROM Kernel: Linux 3.0.x

Version Information
Status:
Stable
Current Stable Version: 3.4.0-0
Stable Release Date: 2020-06-24

Created 2018-01-27
Last Updated 2020-06-25
 
Last edited:

ripee

Recognized Developer / Recognized Contributor
Aug 25, 2014
3,289
6,128
113
tiny.cc
Is there any difference between this twrp and @Option58 twrp?
https://androidfilehost.com/?w=files&flid=225362
Other than the file size? I've seen his build but he doesn't have any publicly available device tree repo with which I could compare mine. If he adapted his build from any rom's source repos, mine should work as well as his. Two possible reasons for the difference in file size are a different compression method, or a different number and nature of entries in the BoardConfig.mk file, which contains the bare minimum hardware parameters and TWRP flags. Perhaps he included a few extra entries which may or may not be essential to the functionality of TWRP? Either way, I just want to contribute a TWRP device tree that could be used for future versions, as I intend on submitting it for official support just as soon as there is sufficient positive feedback. :good:
 

Option58

Elite Member
Oct 27, 2011
1,492
2,017
113
Serbia
Other than the file size? I've seen his build but he doesn't have any publicly available device tree repo with which I could compare mine. If he adapted his build from any rom's source repos, mine should work as well as his. Two possible reasons for the difference in file size are a different compression method, or a different number and nature of entries in the BoardConfig.mk file, which contains the bare minimum hardware parameters and TWRP flags. Perhaps he included a few extra entries which may or may not be essential to the functionality of TWRP? Either way, I just want to contribute a TWRP device tree that could be used for future versions, as I intend on submitting it for official support just as soon as there is sufficient positive feedback. :good:
My sources are in the official LineageOS repo:
https://github.com/LineageOS/androi...mmit/e5734d09a16b97b7d55d3acf9d3e63e1b4653bd8

I didn't use any of the TWRP sources other than well...TWRP. Kernel, device tree and all that are from lineage-14.1.
Feel free to use it, might be more useful when next TWRP version arrives because I don't have build env set up anymore on my PC.
 
  • Like
Reactions: Oswald Boelcke

ripee

Recognized Developer / Recognized Contributor
Aug 25, 2014
3,289
6,128
113
tiny.cc
My sources are in the official LineageOS repo:
https://github.com/LineageOS/androi...mmit/e5734d09a16b97b7d55d3acf9d3e63e1b4653bd8

I didn't use any of the TWRP sources other than well...TWRP. Kernel, device tree and all that are from lineage-14.1.
Feel free to use it, might be more useful when next TWRP version arrives because I don't have build env set up anymore on my PC.
That's exactly what I thought you did and the difference I described in my previous post. Both methods are equally correct, with the difference in file size being that the LineageOS BoardConfig.mk contains many more entries that are irrelevant for recovery mode. I know that both methods produce equally fully functional TWRP builds because I built TWRP for my tablet, gts210wifi, boths ways and both worked.

The reason why having a dedicated TWRP device tree is beneficial in the long term is that it's the preferred source code for submission for official support, given that the lack of unnecessary entries in the TWRP device tree reduces the chances that future versions of TWRP won't be able to be successfully built even with the backwards compatibility of the TWRP repo itself, omnirom/android_bootable_recovery. Less code, fewer bugs, fewer errors.

My other reason for building a dedicated TWRP device tree for i9305 is as a favor to a friend as well as the lack of a current official maintainer. Please report back whatever feedback you can and I will eventually submit it for official support.
 

Option58

Elite Member
Oct 27, 2011
1,492
2,017
113
Serbia
That's exactly what I thought you did and the difference I described in my previous post. Both methods are equally correct, with the difference in file size being that the LineageOS BoardConfig.mk contains many more entries that are irrelevant for recovery mode. I know that both methods produce equally fully functional TWRP builds because I built TWRP for my tablet, gts210wifi, boths ways and both worked.

The reason why having a dedicated TWRP device tree is beneficial in the long term is that it's the preferred source code for submission for official support, given that the lack of unnecessary entries in the TWRP device tree reduces the chances that future versions of TWRP won't be able to be successfully built even with the backwards compatibility of the TWRP repo itself, omnirom/android_bootable_recovery. Less code, fewer bugs, fewer errors.

My other reason for building a dedicated TWRP device tree for i9305 is as a favor to a friend as well as the lack of a current official maintainer. Please report back whatever feedback you can and I will eventually submit it for official support.
Well I was just trying to fix bug where LineageOS OTA updates didn't work in the official TWRP. That's the main reason for this. It was only later when I found out official didn't boot. Make sure you include /misc partition please. :D

My personal opinion: I don't agree with that 'less code, fewer bugs, fewer errors' situation as you now have new TWRP device trees to maintain. Anyway building TWRP was not my main goal it's building lineage - but I can get easy TWRP whenever I want it. And this wasn't made for i9305 I don't even own i9305 - it's made for all smdk4412-common - that how I supported like 6 devices at once.

But, yeah, you can't use what I did for official TWRP and official TWRP needs to get fixed properly so thanks for you work :) Also if you notice anything wrong with the code in lineage (like wrong line or something) feel free to let me know.
 
Last edited:

ripee

Recognized Developer / Recognized Contributor
Aug 25, 2014
3,289
6,128
113
tiny.cc
Well I was just trying to fix bug where LineageOS OTA updates didn't work in the official TWRP. That's the main reason for this. It was only later when I found out official didn't boot. Make sure you include /misc partition please. :D

My personal opinion: I don't agree with that 'less code, fewer bugs, fewer errors' situation as you now have new TWRP device trees to maintain. Anyway building TWRP was not my main goal it's building lineage - but I can get easy TWRP whenever I want it. And this wasn't made for i9305 I don't even own i9305 - it's made for all smdk4412-common - that how I supported like 6 devices at once.

But, yeah, you can't use what I did for official TWRP and official TWRP needs to get fixed properly so thanks for you work :) Also if you notice anything wrong with the code in lineage (like wrong line or something) feel free to let me know.
I don't own the i9305 either, I only have occasional access to one. I know very well that the smdk4412 source supports multiple devices, as I've also built TWRP for i9100.

As for Lineage, I've built for i9305 from its official repos in the past myself. It worked then so I'm sure your recent builds work just fine as well.
 

ripee

Recognized Developer / Recognized Contributor
Aug 25, 2014
3,289
6,128
113
tiny.cc
@ripee I just flashed your twrp and i could not boot up my phone, it gives me error:
Could not do normal boot, invalid kernel lenght
New build is up! Rather than taking partition values from the i9305 device tree, I took them from the smdk4412-common tree. Thank you, Option58, for your advice that proved to be correct.