Skip to content

Commit

Permalink
Release 0.5.1-beta (#315)
Browse files Browse the repository at this point in the history
This release adds:
-  Allow flashing of the vendor_boot partition
-  Add --disable-verity --disable-verification to flash vbmeta command

New devices:
- support for begonia (Xiaomi Redmi Note 8 Pro) (thanks to @anon1892)
- support for on7xelte (Samsung Galaxy J7 Prime) (thanks to @MagicLike)
- support for a7y17lte (Samsung Galaxy A7 2017) (thanks to @SirRGB)
- support for jfltexx (Samsung Galaxy S4) (thanks to @MagicLike)
- support for dipper (Xiaomi Mi 8) (thanks to @anon1892)
- support for surya/karna (Poco X3 - X3 NFC)  (thanks to @anon1892)
- support for alioth (Redmi K40 / Mi 11X / Poco F3) (thanks to
@anon1892)
- new device code variant to `j7elte` & added TWRP link (thanks to
@MagicLike)

Other improvements:
- updates for some OnePlus and Pixel configs with make use of the
flashing of additional partitions if needed for Android 13
- a requirement checkbox to encourage booting stock OS at least once
- migrate xda developers link to a new url
- misc docs and minor config corrections/additions (thanks to @SirRGB)
  • Loading branch information
tsterbak committed Nov 1, 2023
2 parents 95e08f7 + dece249 commit fe5644f
Show file tree
Hide file tree
Showing 45 changed files with 1,644 additions and 1,179 deletions.
1 change: 0 additions & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,4 +131,3 @@ at [https://www.contributor-covenant.org/translations][translations].
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

33 changes: 20 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
> [!IMPORTANT]
> Unlocking the bootloader will erase all data on your device!
> This also includes your DRM keys, which are stored in the Trim Area partition (also called TA) in case your device is fairly recent and supports DRM L1. Those devices will be downgraded to DRM L3. Devices on DRM L3 by default will not be affected.
> Depending on your device you might be able to back up the TA partition using exploits and gaining temporary root access. On Sony Xperia 1/5 series phones DRM L1 will return once the bootloader is relocked.
> Before proceeding, ensure the data you would like to retain is backed up to your PC and/or your Google account, or equivalent. Please note that OEM backup solutions like Samsung and Motorola backup may not be accessible from LineageOS once installed.
> If you wish to backup the TA partition first, you can find tutorials related to your device on the internet.
## Usage

Expand All @@ -57,12 +57,12 @@ Linux is currently the best supported platform (tested with Ubuntu 20.04/22.04 L
- [MicroG](https://microg.org)
- The recommended way to install MicroG is to use the zip file provided here: [https://github.com/FriendlyNeighborhoodShane/MinMicroG-abuse-CI/releases](https://github.com/FriendlyNeighborhoodShane/MinMicroG-abuse-CI/releases).
- [F-Droid App-Store](https://f-droid.org/en/packages/org.fdroid.fdroid.privileged.ota).
- or you can just search the web or the [xda-developers forum](https://forum.xda-developers.com) for an appropriate version for your device.
- or you can just search the web or the [xda-developers forum](https://xdaforums.com) for an appropriate version for your device.
3. Start the desktop app and follow the instructions.

## Officially supported devices

Currently, the **we support 73 devices** by various vendors and working on adding more soon!
Currently, the **we support 81 devices** by various vendors and working on adding more soon!

Support for these devices is provided as best effort, but things might still go wrong.
Help to improve the tool by reporting any issues you might face.
Expand All @@ -72,13 +72,16 @@ Help to improve the tool by reporting any issues you might face.
Vendor | Device Name | CodeName | Models | Status
---|---|---|---|---
Samsung | Galaxy J7 2015 | j7elte | | tested
Samsung | Galaxy J7 Prime | on7xelte | | untested
Samsung | Galaxy A3 2017 | a3y17lte | SM-A320FL | tested
Samsung | Galaxy A5 2016 | [a5xelte](https://wiki.lineageos.org/devices/a5xelte) | SM-A510F | tested
Samsung | Galaxy A5 2017 | [a5y17lte](https://wiki.lineageos.org/devices/a5y17lte) | | tested
Samsung | Galaxy A7 2016 | a7xelte | | tested
Samsung | Galaxy A7 2017 | [a7y17lte](https://wiki.lineageos.org/devices/a7y17lte) | | untested
Samsung | Galaxy Grand Prime VE | grandprimevelte | SM-G531F | tested
Samsung | Galaxy S III Neo | s3ve3g | GT-I9301I | tested
Samsung | Galaxy Tab S2 | [gts210vewifi](https://wiki.lineageos.org/devices/gts210vewifi/) | T813 | tested
Samsung | Galaxy Tab S2 | [gts210vewifi](https://wiki.lineageos.org/devices/gts210vewifi) | T813 | tested
Samsung | Galaxy S4 | [jfltexx](https://wiki.lineageos.org/devices/jfltexx) | | untested
Samsung | Galaxy S4 Mini LTE| [serranoltexx](https://wiki.lineageos.org/devices/serranoltexx) | | tested
Samsung | Galaxy S5 | [klte](https://wiki.lineageos.org/devices/klte) | G900F/M/R4/R7/T/V/W8 | tested
Samsung | Galaxy S6 | [zerofltexx](https://wiki.lineageos.org/devices/zerofltexx) | | tested
Expand Down Expand Up @@ -127,7 +130,7 @@ Sony | Xperia 10 Plus | [mermaid](https://wiki.lineageos.org/devices/mermaid) |
Sony | Xperia XA2 | [pioneer](https://wiki.lineageos.org/devices/pioneer) | | tested
Sony | Xperia XZ2 | [akari](https://wiki.lineageos.org/devices/akari) | | tested
Sony | Xperia XZ3 | [akatsuki](https://wiki.lineageos.org/devices/akatsuki) | | tested
Sony | Xperia ZX | kagura | | planned
Sony | Xperia XZ | kagura | | planned

</details>

Expand All @@ -145,12 +148,12 @@ Fairphone | Fairphone 4 | [FP4](https://wiki.lineageos.org/devices/FP4) | | test

Vendor | Device Name | CodeName | Models | Status
---|---|---|---|---
Motorola | edge | [racer](https://wiki.lineageos.org/devices/racer) | | tested
Motorola | moto g5 | [cedric](https://wiki.lineageos.org/devices/cedric) | | tested
Motorola | moto g6 plus | [evert](https://wiki.lineageos.org/devices/evert) | | tested
Motorola | moto g7 power | [ocean](https://wiki.lineageos.org/devices/ocean) | | tested
Motorola | moto g 5G plus / one 5G | [nairo](https://wiki.lineageos.org/devices/nairo) | | tested
Motorola | moto g 5G / one 5G ace | [kiev](https://wiki.lineageos.org/devices/kiev) | | tested
Motorola | edge | [racer](https://wiki.lineageos.org/devices/racer) | | tested
Motorola | moto z | [griffin](https://wiki.lineageos.org/devices/griffin) | | tested

</details>
Expand Down Expand Up @@ -181,11 +184,15 @@ Vendor | Device Name | CodeName | Models | Status
Xiaomi | Redmi Note 7 | [lavender](https://wiki.lineageos.org/devices/lavender) | | tested
Xiaomi | Redmi 7A / 8 / 8A / 8A Dual | [Mi439](https://wiki.lineageos.org/devices/Mi439) : pine / olive / olivelite / olivewood | | tested
Xiaomi | Redmi Note 8 / 8T | [ginkgo](https://wiki.lineageos.org/devices/ginkgo) / willow | | untested
Xiaomi | Redmi Note 8 Pro | begonia | | untested
Xiaomi | Mi 8 | [dipper](https://wiki.lineageos.org/devices/dipper) | | untested
Xiaomi | Redmi 9A / 9C / 9AT / 9i / 9A Sport / 10A / 10A Sport | garden / dandelion / blossom / angelican | | tested
Xiaomi | Mi 9T / Redmi K20 | [davinci](https://wiki.lineageos.org/devices/davinci) / davinciin | | untested
Xiaomi | Redmi K20 Pro / Mi 9T Pro | raphael / raphaelin | | untested
Xiaomi | Redmi Note 9S / 9 Pro / 9 Pro Max / 10 Lite / Poco M2 pro | [miatoll](https://wiki.lineageos.org/devices/lavender) : gram / curtana / excalibur / joyeuse | | untested
Xiaomi | Redmi Note 10S / 11SE / Poco M5S | [rosemary](https://wiki.lineageos.org/devices/rosemary) / maltose / secret /rosemary_p | | untested
Xiaomi | Redmi K40 / Mi 11X / Poco F3 | [alioth](https://wiki.lineageos.org/devices/alioth) / aliothin | | untested
Xiaomi | Poco X3 / X3 NFC | [surya](https://wiki.lineageos.org/devices/surya) / karna | | untested
Xiaomi | Poco X3 Pro | [vayu](https://wiki.lineageos.org/devices/vayu) | | tested
Xiaomi | 12 | cupid | | untested
</details>
Expand All @@ -196,13 +203,13 @@ And more to come!
## Contributing

All kinds of contributions are welcome. These include:
- Fix and improve texts in configs and in the application.
- Test the tool for a supported device.
- Create a config for a new device.
- Test the application on your computer and/or device.
- Contribute an application build for a new platform.
- Add features and/or improve the code base.
- Report bugs.
- Fixes and improvements to the texts in configs and in the application.
- Testing the tool for a supported device.
- Creating a config for a new device.
- Testing the application on your computer and/or device.
- Contributing an application build for a new platform.
- Adding features and/or improve the code base.
- Reporting bugs.

[How to contribute your own installation configurations](https://github.com/openandroidinstaller-dev/openandroidinstaller/blob/main/docs/how_to_contribute_your_own_installation_configurations.md)

Expand Down
3 changes: 1 addition & 2 deletions docs/building_the_application_for_your_platform.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ If you build the application for your platform and want to contribute the build,

## Run OpenAndroidInstaller for development

Currently development is only supported on Ubuntu Linux. MacOS and Windows should also work fine. You might need to install additional USB-drivers on Windows.
Currently development is mainly done on Ubuntu Linux. MacOS, Windows, as well as other Linux distributions like Fedora should also work well. You might need to install additional USB-drivers on Windows.

1. Clone the main branch of this repository
2. Run `make poetry` and `make install` to install poetry to manage python and install the required dependencies like adb, fastboot and heimdall.
3. Run `make app` to start the desktop app from the source.

Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,3 @@ Every step in the config file corresponds to one view in the application. These
- `allow_skip`: [OPTIONAL] boolean; If a skip button should be displayed to allow skipping this step. Can be useful when the bootloader is already unlocked.

**Please try to retain this order of these fields in your config to ensure consistency.**

3 changes: 2 additions & 1 deletion docs/unlocking_the_bootloader.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ For some devices, it is necessary to unlock the bootloader manually. You usually
Other phone manufacturers no longer allow you to unlock the bootloader. Nothing can be done if you have not unlocked your device in time. These manufacturers include *Huawei, Honor, LG and ASUS*. Support for these manufacturers will always be very limited.

## Here is a brief overview of the bootloader policies of some of the most popular brands (may be incomplete/inaccurate)
## Note: Some oems on the list may offer carrier locked or region specific models, which also affect the unlock ability (Sony, Google, Motorola, etc.)

| Brand | Flashing tool | Unlocking Method | Loss of guarantee\* | Supported models |
|---|---|---|---|---|
Expand All @@ -25,6 +26,6 @@ Other phone manufacturers no longer allow you to unlock the bootloader. Nothing
| LG | Fastboot | Impossible since December 2021 | **Yes** | |
| ASUS | Fastboot | Impossible since May 2023 (ASUS unlocking App) | **Yes** | |

**\*** In the EU you won't loose your standard 2 years of the warranty when you unlock your bootloader, flash your device or root it. ([source](https://forum.xda-developers.com/t/info-eu-rooting-and-flashing-dont-void-the-warranty.1998801/))
**\*** In the EU you won't loose your standard 2 years of the warranty when you unlock your bootloader, flash your device or root it. ([source](https://xdaforums.com/t/info-eu-rooting-and-flashing-dont-void-the-warranty.1998801))

You can find more information about the brands and their bootloader policies [here](https://wikilibriste.fr/fr/tutoriels-android/bootloader-unlock) (in French).
1 change: 1 addition & 0 deletions openandroidinstaller/app_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ def __init__(
self.dtbo_path = None
self.vbmeta_path = None
self.super_empty_path = None
self.vendor_boot_path = None

# store views
self.default_views: List = []
Expand Down
24 changes: 9 additions & 15 deletions openandroidinstaller/assets/configs/Mi439.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,41 +28,35 @@ steps:
- type: link_button_with_confirm
content: >
- Create a Mi account on Xiaomi’s website. Beware that one account is only allowed to unlock one unique device every 30 days.
- Add a phone number to your Mi account, insert a SIM into your phone.
- Enable developer options in `Settings` > `About Phone` by repeatedly tapping MIUI Version.
- Link the device to your Mi account in `Settings` > `Additional settings` > `Developer options` > `Mi Unlock status`.
- Download the Mi Unlock app with the link bellow (Windows is required to run the app), and follow the instructions provided by the app. It may tell you that you have to wait, usually 7 days. If it does so, please wait the quoted amount of time before continuing to the next step!
- After device and Mi account are successfully verified, the bootloader should be unlocked.
- Since the device resets completely, you will need to re-enable USB debugging to continue : `Settings` > `Additional settings` > `Developer options` > `USB debugging`
link: https://en.miui.com/unlock/download_en.html
boot_recovery:
- type: call_button
content: >
Now you need to install a custom recovery system on the phone. A recovery is a small subsystem on your phone,
that manages updating, adapting and repairing of the operating system.
Once the device is fully booted, you need to reboot into the bootloader again by pressing 'Confirm and run' here. Then continue.
command: adb_reboot_bootloader
- type: call_button
content: >
Install additional partitions selected before by pressing 'Confirm and run'. Once it's done continue.
Note : If you have not selected this partition, it will do nothing.
command: fastboot_flash_additional_partitions
- type: call_button
content: >
Install the recovery you chosen before by pressing 'Confirm and run'. Once it's done continue.
command: fastboot_flash_recovery
- type: call_button
img: ofox.png
img: twrp-start.jpeg
content: >
Reboot to recovery by pressing 'Confirm and run', and hold the Vol+ button of your phone UNTIL you see the recovery.
If MiUI starts, you have to start the process again, since MiUI delete the recovery you just flashed.
Once it's done continue.
command: fastboot_reboot_recovery
command: fastboot_reboot_recovery
13 changes: 7 additions & 6 deletions openandroidinstaller/assets/configs/a5y17lte.yaml
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
metadata:
maintainer: Tobias Sterbak (tsterbak)
device_name: Samsung Galaxy A5 (2017)
is_ab_device: false
is_ab_device: false
device_code: a5y17lte
supported_device_codes:
- a5y17lte
- a5y17ltecan
- a5y17ltexx
steps:
unlock_bootloader:
boot_recovery:
- type: call_button
content: >
As a first step, you need to boot into the bootloader. A bootloader is the piece of software,
that tells your phone how to start and run an operating system (like Android). Your device should be turned on.
As a first step, you need to boot into the bootloader. A bootloader is the piece of software,
that tells your phone how to start and run an operating system (like Android). Your device should be turned on.
Then press 'Confirm and run' to reboot into the bootloader. Continue once it's done.
command: adb_reboot_download
- type: call_button
Expand All @@ -23,6 +24,6 @@ steps:
- type: confirm_button
img: samsung-buttons.png
content: >
Unplug the USB cable from your device. Then manually reboot into recovery by pressing the *Volume Down* + *Power buttons* for 8~10 seconds
until the screen turns black & release the buttons immediately when it does, then boot to recovery with the device powered off,
hold *Volume Up* + *Home* + *Power button*.
Unplug the USB cable from your device. Then manually reboot into recovery by pressing the *Volume Down* + *Power buttons* for 8~10 seconds
until the screen turns black & release the buttons immediately when it does, then boot to recovery with the device powered off,
hold *Volume Up* + *Home* + *Power button*.
29 changes: 29 additions & 0 deletions openandroidinstaller/assets/configs/a7y17lte.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
metadata:
maintainer: Tobias Sterbak (tsterbak)/SirRGB
device_name: Samsung Galaxy A7 (2017)
is_ab_device: false
device_code: a7y17lte
supported_device_codes:
- a7y17lte
- a7y17ltexx
untested: true
steps:
unlock_bootloader:
boot_recovery:
- type: call_button
content: >
As a first step, you need to boot into the bootloader. A bootloader is the piece of software,
that tells your phone how to start and run an operating system (like Android). Your device should be turned on.
Then press 'Confirm and run' to reboot into the bootloader. Continue once it's done.
command: adb_reboot_download
- type: call_button
content: >
In this step, you need to flash a custom recovery on your device.
Press 'Confirm and run' to start the process. Confirm afterwards to continue.
command: heimdall_flash_recovery
- type: confirm_button
img: samsung-buttons.png
content: >
Unplug the USB cable from your device. Then manually reboot into recovery by pressing the *Volume Down* + *Power buttons* for 8~10 seconds
until the screen turns black & release the buttons immediately when it does, then boot to recovery with the device powered off,
hold *Volume Up* + *Home* + *Power button*.
55 changes: 55 additions & 0 deletions openandroidinstaller/assets/configs/alioth.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
metadata:
maintainer: A non (anon)
brand: xiaomi
device_name: Xiaomi Redmi K40 / Mi 11X / POCO F3
is_ab_device: false
device_code: alioth
untested: true
additional_steps:
- vbmeta
supported_device_codes:
- alioth
- aliothin
notes:
- Be careful when choosing OrangeFox version, Android 12 & 13 ROM needs OrangeFox version code with `A12`, for example `R11.1_5_A12`. Android 10 & 11 ROM needs OrangeFox version code without `A12` (bellow on the page)
steps:
unlock_bootloader:
- type: confirm_button
content: >
As a first step, you need to unlock the bootloader. A bootloader is the piece of software, that tells your phone
how to start and run an operating system (like Android). Your device should be turned on. This will reset your phone.
- type: link_button_with_confirm
content: >
- Create a Mi account on Xiaomi’s website. Beware that one account is only allowed to unlock one unique device every 30 days.
- Add a phone number to your Mi account, insert a SIM into your phone.
- Enable developer options in `Settings` > `About Phone` by repeatedly tapping MIUI Version.
- Link the device to your Mi account in `Settings` > `Additional settings` > `Developer options` > `Mi Unlock status`.
- Download the Mi Unlock app with the link bellow (Windows is required to run the app), and follow the instructions provided by the app. It may tell you that you have to wait, usually 7 days. If it does so, please wait the quoted amount of time before continuing to the next step!
- After device and Mi account are successfully verified, the bootloader should be unlocked.
- Since the device resets completely, you will need to re-enable USB debugging to continue : `Settings` > `Additional settings` > `Developer options` > `USB debugging`
link: https://en.miui.com/unlock/download_en.html
boot_recovery:
- type: call_button
content: >
Now you need to install a custom recovery system on the phone. A recovery is a small subsystem on your phone,
that manages updating, adapting and repairing of the operating system.
Once the device is fully booted, you need to reboot into the bootloader again by pressing 'Confirm and run' here. Then continue.
command: adb_reboot_bootloader
- type: call_button
content: >
Install the recovery you chosen before by pressing 'Confirm and run'. Once it's done continue.
command: fastboot_flash_recovery
- type: call_button
img: twrp-start.jpeg
content: >
Reboot to recovery by pressing 'Confirm and run', and hold the Vol+ button of your phone UNTIL you see the recovery.
If MiUI starts, you have to start the process again, since MiUI delete the recovery you just flashed.
Once it's done continue.
command: fastboot_reboot_recovery
9 changes: 9 additions & 0 deletions openandroidinstaller/assets/configs/avicii.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ metadata:
supported_device_codes:
- avicii
- Nord
additional_steps:
- dtbo
- vbmeta
requirements:
android: 12
steps:
Expand All @@ -31,6 +34,12 @@ steps:
adapting and repairing of the operating system.
Make sure your device is turned on. You need to reboot into the bootloader again by pressing 'Confirm and run' here. Then continue.
command: adb_reboot_bootloader
- type: call_button
content: >
Install additional partitions selected before by pressing 'Confirm and run'. Once it's done continue.
Note : If you have not selected additional partitions it will do nothing and is save to continue.
command: fastboot_flash_additional_partitions
- type: call_button
img: twrp-start.jpeg
content: >
Expand Down

0 comments on commit fe5644f

Please sign in to comment.