Skip to content

Commit

Permalink
Release 0.5.0-beta (#191)
Browse files Browse the repository at this point in the history
This release adds:
- Allow flashing a custom recovery with a toggle switch.
- Display device specific notes at the image selection step (thanks to
@anon1892)
- Include the commands `fastboot_flash_recovery` and
`fastboot_reboot_recovery` (thanks to @anon1892)
- Add support for Samsung Galaxy S5 LTE (klte).
- Add support for Mi439 (Redmi 7A & co.) (thanks to @anon1892)
- Add support for lavender (Xiaomi Redmi Note 7) (thanks to @anon1892)
- Add support for ginkgo (Xiaomi Redmi Note 8 / 8T) (thanks to
@anon1892)
- Add support for garden (Xiaomi Redmi 9A & co.) (thanks to @anon1892)
- Add support for rosemary (Xiaomi Redmi Note 10S & co.) (thanks to
@anon1892)
- Add support for miatoll (Xiaomi Redmi Note 9 Pro / 9S ... Poco M2 Pro)
(thanks to @anon1892)
- Add support for davinci (Xiaomi Mi 9T / Redmi K20) (thanks to
@anon1892)
- Add support for raphael (Xiaomi Mi 9T Pro / Redmi K20 Pro) (thanks to
@anon1892)
- Add support for vayu (Poco X3 Pro) (thanks to @anon1892)
- Add support for cupid (Xiaomi 12) (thanks to @anon1892)

Fixes:
- make fastboot_unlock_critical properly accessible.
- Add missing alternative device codes for Samsung S9 and S10 (thanks to
@MagicLike)
- Fix the bug with the progress bar percentages (resolves #181)
- Display the scroll bar by default if scrolling is necessary
- An info text box for additional images

Other news:
- Actions for releases are upgraded (by @MagicLike)
- Reworked the device request template as form (by @MagicLike)
- Updated bootloader unlock info (by @freechelmi)

Todo:
- [x] Test flashing with already installed recovery.
- [x] Add new devices to the README
- [x] Update the website with new devices
  • Loading branch information
tsterbak authored Oct 2, 2023
2 parents 83d2de4 + 9ba8c27 commit cf505c8
Show file tree
Hide file tree
Showing 41 changed files with 1,461 additions and 136 deletions.
23 changes: 0 additions & 23 deletions .github/ISSUE_TEMPLATE/device-support-request.md

This file was deleted.

89 changes: 89 additions & 0 deletions .github/ISSUE_TEMPLATE/device-support-request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: Device support request
description: Request support for a new device
title: Add support for <DEVICE>
labels: ["device"]
body:
- type: markdown
attributes:
value: "Thank you for your interest in OpenAndroidInstaller!"
- type: markdown
attributes:
value: "To get your device supported, please take the time to fill out this form."
- type: markdown
attributes:
value: "---"
- type: checkboxes
attributes:
label: Is your device already requested?
description: Please search to see if an issue for your device already exists.
options:
- label: I have searched the existing issues
required: true
- type: markdown
attributes:
value: "---"
- type: markdown
attributes:
value: "**Please input your device's details below:**"
- type: input
attributes:
label: Brand
description: The brand / manufacturer of your device
placeholder: Google
validations:
required: true
- type: input
attributes:
label: Name
description: The name of your device
placeholder: Pixel 3a
validations:
required: true
- type: input
attributes:
label: Device code
description: The device code OAI gave you in the error message
placeholder: sargo
validations:
required: true
- type: input
attributes:
label: Model
description: The model name of your device (only required, if there are several models)
placeholder: G020F
validations:
required: false
- type: markdown
attributes:
value: "---"
- type: textarea
attributes:
label: Device images
description: "Please provide links to any available images for the device, such as official stock firmware, Custom ROMs and Recoveries you would like to install."
placeholder: |
- Custom ROM: https://wiki.lineageos.org/devices/sargo
- Recovery: https://twrp.me/google/googlepixel3a.html
#value: |
# - Custom ROM:
# - Recovery:
# - Stock firmware (if needed & existing):
render: Markdown
validations:
required: false
- type: markdown
attributes:
value: "---"
- type: checkboxes
attributes:
label: Do you own the device and would be willing to test the installer?
options:
- label: I own the device and am willing to test the installer on it.
required: true
- type: markdown
attributes:
value: "---"
- type: textarea
attributes:
label: Additional context
description: Please provide any additional context or information that might be helpful in adding support for this device.
render: Markdown
16 changes: 8 additions & 8 deletions .github/workflows/build-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ jobs:
matrix:
os: ['ubuntu-20.04', 'ubuntu-latest']
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: 3.9
- run: pip install -r requirements.txt
Expand All @@ -32,8 +32,8 @@ jobs:
matrix:
os: ['ubuntu-20.04', 'ubuntu-latest', 'macos-latest']
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: 3.9
- run: pip install -r requirements.txt
Expand All @@ -48,8 +48,8 @@ jobs:
needs: ci
runs-on: 'windows-latest'
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: 3.9
- run: pip install -r requirements.txt
Expand All @@ -66,7 +66,7 @@ jobs:
- build-windows
runs-on: 'ubuntu-latest'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v3
- name: Display structure of downloaded files
Expand All @@ -86,7 +86,7 @@ jobs:
- name: Display structure of downloaded files
run: ls -R
- name: Create release
uses: marvinpinto/action-automatic-releases@latest
uses: dciborow/action-github-releases@v1.0.1
if: startsWith(github.ref, 'refs/tags/')
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/manual-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
os: ['ubuntu-20.04', 'ubuntu-latest', 'macos-latest', 'windows-latest']

steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: 3.9
- run: pip install -r requirements.txt
Expand Down
44 changes: 31 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,21 @@
</p>
</div>

> **Warning**: This application is currently in beta state, so use at your own risk! While many people tested the application so far and we heard of no bricked devices, things might still go wrong.
> **Note**: 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.
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.
> [!WARNING]
> This application is currently in beta state, so use at your own risk! While many people tested the application so far and we heard of no bricked devices, things might still go wrong.
> [!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.
> 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

Linux is currently the best supported platform (tested with Ubuntu 20.04/22.04 LTS). Windows and MacOS are also supported but you might experience more issues. So far there is no support for ARM-based systems.

1. Download the [.exe or appropriate executable file for your OS](https://github.com/openandroidinstaller-dev/openandroidinstaller/releases) from the releases or get the [official flatpak from flathub](https://flathub.org/apps/org.openandroidinstaller.OpenAndroidInstaller). You might need to change permissions to run the executable.
- On Windows also [install the Universal USB Drivers](https://adb.clockworkmod.com/) and other potentially drivers needed for your device.
- On Windows also [install the Universal USB Drivers](https://adb.clockworkmod.com) and other potentially drivers needed for your device.
2. Download the custom ROM image and the TWRP recovery image for your device and optionally some addons. A source for files can be found on the following websites:
- some custom ROMs:
- [LineageOS](https://wiki.lineageos.org/devices)
Expand All @@ -63,7 +64,7 @@ Linux is currently the best supported platform (tested with Ubuntu 20.04/22.04 L

## Officially supported devices

Currently, the **we support 62 devices** by various vendors and working on adding more soon!
Currently, the **we support 73 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.
Expand All @@ -82,11 +83,12 @@ 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 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
Samsung | Galaxy S6 Edge | [zeroltexx](https://wiki.lineageos.org/devices/zeroltexx) | | tested
Samsung | Galaxy S7 | [herolte](https://wiki.lineageos.org/devices/herolte) | SM-G930F | tested
Samsung | Galaxy S7 Edge | [hero2lte](https://wiki.lineageos.org/devices/hero2lte) | | tested
Samsung | Galaxy S8 | [dreamlte](https://wiki.lineageos.org/devices/dreamlte) | | tested
Samsung | Galaxy S8 | dreamlte | | tested
Samsung | Galaxy S9 | [starlte](https://wiki.lineageos.org/devices/starlte) | | tested
Samsung | Galaxy S10 | [beyond1lte](https://wiki.lineageos.org/devices/beyond1lte) | | tested
Samsung | Galaxy S10e | [beyond0lte](https://wiki.lineageos.org/devices/beyond0lte) | | tested
Expand Down Expand Up @@ -169,6 +171,23 @@ OnePlus | Nord N200 | [dre](https://wiki.lineageos.org/devices/dre) | | tested
OnePlus | 9 | lemonade | | under development
</details>

<details><summary><b>Xiaomi</b></summary>

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 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 | Poco X3 Pro | [vayu](https://wiki.lineageos.org/devices/vayu) | | untested
Xiaomi | 12 | cupid | | untested
</details>


And more to come!


Expand All @@ -183,19 +202,18 @@ All kinds of contributions are welcome. These include:
- Add features and/or improve the code base.
- Report bugs.

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

[How to build the application for your platform](https://github.com/openandroidinstaller-dev/openandroidinstaller/blob/main/doc/building_the_application_for_your_platform.md)
[How to build the application for your platform](https://github.com/openandroidinstaller-dev/openandroidinstaller/blob/main/docs/building_the_application_for_your_platform.md)

[On unlocking the bootloader](https://github.com/openandroidinstaller-dev/openandroidinstaller/blob/main/doc/unlocking_the_bootloader.md)
[On unlocking the bootloader](https://github.com/openandroidinstaller-dev/openandroidinstaller/blob/main/docs/unlocking_the_bootloader.md)

More details on how to contribute can be found [here](https://github.com/openandroidinstaller-dev/openandroidinstaller/blob/main/CONTRIBUTING.md).
Please have a look before opening an issue or starting to contribute.

A detailed list can be found [here](https://openandroidinstaller.org/#contribute).



## Tools

- The [Android SDK Platform Tools](https://developer.android.com/studio/releases/platform-tools) (such as adb and fastboot) are [Apache](https://android.googlesource.com/platform/system/adb/+/refs/heads/master/NOTICE)-licensed universal Android utilities
Expand Down
6 changes: 0 additions & 6 deletions doc/unlocking_the_bootloader.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,14 @@ A config file consists of two parts. The first part are some metadata about the
Every config file should have `metadata` with the following fields:
- `maintainer`: str; Maintainer and author of the config file.
- `device_name`: str; Name of the device.
- `brand`: [OPTIONAL] str; Name of the brand. Can be used to make brand specific actions.
- `is_ab_device`: bool; A boolean to determine if the device is a/b-partitioned or not.
- `device_code`: str; The official device code.
- `supported_device_codes`: List[str]; A list of supported device codes for the config. The config will be loaded based on this field.
- `twrp-link`: [OPTIONAL] str; name of the corresponding twrp page.
- `additional_steps` : [OPTIONAL] List[str]; A list of additional steps. Can be `dtbo`, `vbmeta`, `vendor_boot` or `super_empty`.
- `notes`: [OPTIONAL] List[str]; specific phone information, showed before choosing ROM / recovery
- `untested`: [OPTIONAL] bool; If `true`, a warning message is showed during installation process.

In addition to these metadata, every config can have optional `requirements`. If these are set, the user is asked to check if they are meet.
- `android`: [OPTIONAL] int|str; Android version to install prior to installing a custom ROM.
Expand All @@ -32,7 +36,7 @@ Every step in the config file corresponds to one view in the application. These
- `img`: [OPTIONAL] Display an image on the left pane of the step view. Images are loaded from `openandroidinstaller/assets/imgs/`.
- `content`: str; The content text displayed alongside the action of the step. Used to inform the user about what's going on. For consistency and better readability the text should be moved into the next line using `>`.
- `link`: [OPTIONAL] Link to use for the link button if type is `link_button_with_confirm`.
- `command`: [ONLY for call_button* steps] str; The command to run. One of `adb_reboot`, `adb_reboot_bootloader`, `adb_reboot_download`, `adb_sideload`, `adb_twrp_wipe_and_install`, `adb_twrp_copy_partitions`, `fastboot_boot_recovery`, `fastboot_unlock_with_code`, `fastboot_unlock`, `fastboot_oem_unlock`, `fastboot_get_unlock_data`, `fastboot_reboot`, `heimdall_flash_recovery`.
- `command`: [ONLY for call_button* steps] str; The command to run. One of `adb_reboot`, `adb_reboot_bootloader`, `adb_reboot_download`, `adb_sideload`, `adb_twrp_wipe_and_install`, `adb_twrp_copy_partitions`, `fastboot_boot_recovery`, `fastboot_flash_recovery`, `fastboot_reboot_recovery`, `fastboot_flash_additional_partitions`, `fastboot_unlock_with_code`, `fastboot_unlock`, `fastboot_unlock_critical`, `fastboot_oem_unlock`, `fastboot_get_unlock_data`, `fastboot_reboot`, `heimdall_flash_recovery`.
- `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.**
Expand Down
30 changes: 30 additions & 0 deletions docs/unlocking_the_bootloader.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# On unlocking the bootloader

> [!IMPORTANT]
> First of all, this tool will not help you bypass any vender locked bootloaders in non-official ways.
Devices by *Samsung, Google, OnePlus, Fairphone* and others make it relatively easy to unlock the bootloader and get good support in the installer.

For some devices, it is necessary to unlock the bootloader manually. You usually need to create an account on the manufacturer's website, wait for a certain time and obtain a code from there. OpenAndroidInstaller will try to guide you as far as possible. These vendors include *Sony, Motorola and Xiaomi* amongst others.

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)

| Brand | Flashing tool | Unlocking Method | Loss of guarantee\* | Supported models |
|---|---|---|---|---|
| Google | Fastboot | OEM/Flashing unlock | No | Pixel and Nexus |
| Samsung | ODIN or Heimdall | Download mode | **Yes** | Galaxy S and A series<br>(Increasing complexity **on and after S10**) |
| OnePlus | Fastboot | OEM/Flashing unlock | No | All |
| Fairphone | Fastboot | [Code from manufacturer](https://support.fairphone.com/hc/en-us/articles/10492476238865-Manage-the-Bootloader)<br>(**Already unlocked until FP2**) | No | All |
| Xiaomi | Fastboot | [Mi Unlock Tool](https://new.c.mi.com/global/post/101245) | **Yes** | Mi 4c, Redmi Note 3, Mi Note Pro, Redmi 3, Mi 4S, Mi 5 and all devices from 2016 onwards |
| Motorola | Fastboot | [Code from manufacturer](https://en-us.support.motorola.com/app/standalone/bootloader/unlock-your-device-a) | **Yes** | Almost all **except** carrier specific models (e.g. Verizon, AT&T, Tracfone) and certain other models |
| Sony | Fastboot | [Code from manufacturer](https://developer.sony.com/open-source/aosp-on-xperia-open-devices/get-started/unlock-bootloader) | **Yes** | All **except** XQ-CT62 (1Ⅳ US) & XQ-CQ62 (5Ⅳ US) |
| Huawei | Fastboot | No official codes since 2017/2018<br>(**Unofficial methods available**) | **Yes** | Mate 9/9Pro, P10/P10Plus |
| Honor | Fastboot | No official codes since 2017/2018<br>(**Unofficial methods available**) | **Yes** | Honor 8 |
| 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/))

You can find more information about the brands and their bootloader policies [here](https://wikilibriste.fr/fr/tutoriels-android/bootloader-unlock) (in French).
Loading

0 comments on commit cf505c8

Please sign in to comment.