Skip to content

Commit 9b7f32a

Browse files
authored
Merge branch 'dev' into rosemary
2 parents c4aaa3c + 9890fd3 commit 9b7f32a

37 files changed

+1175
-185
lines changed

.github/FUNDING.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ patreon: # Replace with a single Patreon username
66
ko_fi: # Replace with a single Ko-fi username
77
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
88
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9-
liberapay: # Replace with a single Liberapay username
9+
liberapay: OpenAndroidInstaller
1010
issuehunt: # Replace with a single IssueHunt username
1111
otechie: # Replace with a single Otechie username
1212
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: Bug report
33
about: Create a report to help us improve
44
title: ''
5-
labels: ''
5+
labels: 'bug'
66
assignees: ''
77

88
---

.github/ISSUE_TEMPLATE/device-support-request.md

Lines changed: 0 additions & 21 deletions
This file was deleted.
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: Device support request
2+
description: Request support for a new device
3+
title: Add support for <DEVICE>
4+
labels: ["device"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: "Thank you for your interest in OpenAndroidInstaller!"
9+
- type: markdown
10+
attributes:
11+
value: "To get your device supported, please take the time to fill out this form."
12+
- type: markdown
13+
attributes:
14+
value: "---"
15+
- type: checkboxes
16+
attributes:
17+
label: Is your device already requested?
18+
description: Please search to see if an issue for your device already exists.
19+
options:
20+
- label: I have searched the existing issues
21+
required: true
22+
- type: markdown
23+
attributes:
24+
value: "---"
25+
- type: markdown
26+
attributes:
27+
value: "**Please input your device's details below:**"
28+
- type: input
29+
attributes:
30+
label: Brand
31+
description: The brand / manufacturer of your device
32+
placeholder: Google
33+
validations:
34+
required: true
35+
- type: input
36+
attributes:
37+
label: Name
38+
description: The name of your device
39+
placeholder: Pixel 3a
40+
validations:
41+
required: true
42+
- type: input
43+
attributes:
44+
label: Device code
45+
description: The device code OAI gave you in the error message
46+
placeholder: sargo
47+
validations:
48+
required: true
49+
- type: input
50+
attributes:
51+
label: Model
52+
description: The model name of your device (only required, if there are several models)
53+
placeholder: G020F
54+
validations:
55+
required: false
56+
- type: markdown
57+
attributes:
58+
value: "---"
59+
- type: textarea
60+
attributes:
61+
label: Device images
62+
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."
63+
placeholder: |
64+
- Custom ROM: https://wiki.lineageos.org/devices/sargo
65+
- Recovery: https://twrp.me/google/googlepixel3a.html
66+
#value: |
67+
# - Custom ROM:
68+
# - Recovery:
69+
# - Stock firmware (if needed & existing):
70+
render: Markdown
71+
validations:
72+
required: false
73+
- type: markdown
74+
attributes:
75+
value: "---"
76+
- type: checkboxes
77+
attributes:
78+
label: Do you own the device and would be willing to test the installer?
79+
options:
80+
- label: I own the device and am willing to test the installer on it.
81+
required: true
82+
- type: markdown
83+
attributes:
84+
value: "---"
85+
- type: textarea
86+
attributes:
87+
label: Additional context
88+
description: Please provide any additional context or information that might be helpful in adding support for this device.
89+
render: Markdown

.github/ISSUE_TEMPLATE/feature-request.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: Feature request
33
about: Suggest an idea for this project
44
title: ''
5-
labels: ''
5+
labels: 'enhancement'
66
assignees: ''
77

88
---

.github/workflows/build-release.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ jobs:
1414
matrix:
1515
os: ['ubuntu-20.04', 'ubuntu-latest']
1616
steps:
17-
- uses: actions/checkout@v2
18-
- uses: actions/setup-python@v2
17+
- uses: actions/checkout@v4
18+
- uses: actions/setup-python@v4
1919
with:
2020
python-version: 3.9
2121
- run: pip install -r requirements.txt
@@ -32,8 +32,8 @@ jobs:
3232
matrix:
3333
os: ['ubuntu-20.04', 'ubuntu-latest', 'macos-latest']
3434
steps:
35-
- uses: actions/checkout@v2
36-
- uses: actions/setup-python@v2
35+
- uses: actions/checkout@v4
36+
- uses: actions/setup-python@v4
3737
with:
3838
python-version: 3.9
3939
- run: pip install -r requirements.txt
@@ -48,8 +48,8 @@ jobs:
4848
needs: ci
4949
runs-on: 'windows-latest'
5050
steps:
51-
- uses: actions/checkout@v2
52-
- uses: actions/setup-python@v2
51+
- uses: actions/checkout@v4
52+
- uses: actions/setup-python@v4
5353
with:
5454
python-version: 3.9
5555
- run: pip install -r requirements.txt
@@ -66,7 +66,7 @@ jobs:
6666
- build-windows
6767
runs-on: 'ubuntu-latest'
6868
steps:
69-
- uses: actions/checkout@v2
69+
- uses: actions/checkout@v4
7070
- name: Download artifact
7171
uses: actions/download-artifact@v3
7272
- name: Display structure of downloaded files
@@ -86,7 +86,7 @@ jobs:
8686
- name: Display structure of downloaded files
8787
run: ls -R
8888
- name: Create release
89-
uses: marvinpinto/action-automatic-releases@latest
89+
uses: dciborow/action-github-releases@v1.0.1
9090
if: startsWith(github.ref, 'refs/tags/')
9191
with:
9292
repo_token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/manual-build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ jobs:
1313
os: ['ubuntu-20.04', 'ubuntu-latest', 'macos-latest', 'windows-latest']
1414

1515
steps:
16-
- uses: actions/checkout@v2
17-
- uses: actions/setup-python@v2
16+
- uses: actions/checkout@v4
17+
- uses: actions/setup-python@v4
1818
with:
1919
python-version: 3.9
2020
- run: pip install -r requirements.txt

README.md

Lines changed: 21 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,21 @@
2727
</p>
2828
</div>
2929

30-
> **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.
31-
32-
> **Note**: Unlocking the bootloader will erase all data on your device!
33-
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.
34-
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.
35-
If you wish to backup the TA partition first, you can find tutorials related to your device on the internet.
30+
> [!WARNING]
31+
> 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.
3632
33+
> [!IMPORTANT]
34+
> Unlocking the bootloader will erase all data on your device!
35+
> 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.
36+
> 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.
37+
> If you wish to backup the TA partition first, you can find tutorials related to your device on the internet.
3738
3839
## Usage
3940

4041
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.
4142

4243
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.
43-
- On Windows also [install the Universal USB Drivers](https://adb.clockworkmod.com/) and other potentially drivers needed for your device.
44+
- On Windows also [install the Universal USB Drivers](https://adb.clockworkmod.com) and other potentially drivers needed for your device.
4445
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:
4546
- some custom ROMs:
4647
- [LineageOS](https://wiki.lineageos.org/devices)
@@ -82,11 +83,12 @@ Samsung | Galaxy Grand Prime VE | grandprimevelte | SM-G531F | tested
8283
Samsung | Galaxy S III Neo | s3ve3g | GT-I9301I | tested
8384
Samsung | Galaxy Tab S2 | [gts210vewifi](https://wiki.lineageos.org/devices/gts210vewifi/) | T813 | tested
8485
Samsung | Galaxy S4 Mini LTE| [serranoltexx](https://wiki.lineageos.org/devices/serranoltexx) | | tested
86+
Samsung | Galaxy S5 | [klte](https://wiki.lineageos.org/devices/klte) | G900F/M/R4/R7/T/V/W8 | tested
8587
Samsung | Galaxy S6 | [zerofltexx](https://wiki.lineageos.org/devices/zerofltexx) | | tested
8688
Samsung | Galaxy S6 Edge | [zeroltexx](https://wiki.lineageos.org/devices/zeroltexx) | | tested
8789
Samsung | Galaxy S7 | [herolte](https://wiki.lineageos.org/devices/herolte) | SM-G930F | tested
8890
Samsung | Galaxy S7 Edge | [hero2lte](https://wiki.lineageos.org/devices/hero2lte) | | tested
89-
Samsung | Galaxy S8 | [dreamlte](https://wiki.lineageos.org/devices/dreamlte) | | tested
91+
Samsung | Galaxy S8 | dreamlte | | tested
9092
Samsung | Galaxy S9 | [starlte](https://wiki.lineageos.org/devices/starlte) | | tested
9193
Samsung | Galaxy S10 | [beyond1lte](https://wiki.lineageos.org/devices/beyond1lte) | | tested
9294
Samsung | Galaxy S10e | [beyond0lte](https://wiki.lineageos.org/devices/beyond0lte) | | tested
@@ -173,19 +175,15 @@ OnePlus | 9 | lemonade | | under development
173175

174176
Vendor | Device Name | CodeName | Models | Status
175177
---|---|---|---|---
178+
Xiaomi | Redmi Note 7 | [lavender](https://wiki.lineageos.org/devices/lavender) | | tested
179+
Xiaomi | Redmi 7A / 8 / 8A / 8A Dual | [Mi439](https://wiki.lineageos.org/devices/Mi439) : pine / olive / olivelite / olivewood | | tested
180+
Xiaomi | Redmi Note 8 / 8T | [ginkgo](https://wiki.lineageos.org/devices/ginkgo) / willow | | untested
181+
Xiaomi | Redmi 9A / 9C / 9AT / 9i / 9A Sport / 10A / 10A Sport | garden / dandelion / blossom / angelican | | tested
176182
Xiaomi | Redmi Note 10S / 11SE / Poco M5S | [rosemary](https://wiki.lineageos.org/devices/rosemary) / maltose / secret /rosemary_p | | untested
177183
</details>
178184

179-
And more to come!
180-
181185

182-
## Run OpenAndroidInstaller for development
183-
184-
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.
185-
186-
1. Clone the main branch of this repository
187-
2. Run `make poetry` and `make install` to install poetry to manage python and install the required dependencies like adb, fastboot and heimdall.
188-
3. Run `make app` to start the desktop app from the source.
186+
And more to come!
189187

190188

191189
## Contributing
@@ -199,62 +197,17 @@ All kinds of contributions are welcome. These include:
199197
- Add features and/or improve the code base.
200198
- Report bugs.
201199

202-
More details on how to contribute can be found [here](https://github.com/openandroidinstaller-dev/openandroidinstaller/blob/main/CONTRIBUTING.md).
203-
Please have a look before opening an issue or starting to contribute.
204-
205-
A detailed list can be found [here](https://openandroidinstaller.org/#contribute).
206-
207-
### How to contribute your own installation configurations
208-
209-
If you want to use the tool for a non-supported smartphone, the fastest way is to adapt an [existing config file](https://github.com/openandroidinstaller-dev/openandroidinstaller/tree/main/openandroidinstaller/assets/configs). The file should be named after the official `device code` of the device. Add the code output by `adb shell getprop | grep ro.product.device` (when the devices is connected to the computer) as well as the official device code to the `supported_device_codes` list in the config. You can also get the device code by connecting the device to the computer and run OpenAndroidInstaller to detect the device.
200+
[How to contribute your own installation configurations](https://github.com/openandroidinstaller-dev/openandroidinstaller/blob/main/docs/how_to_contribute_your_own_installation_configurations.md)
210201

211-
**To test your config file with the executable** without using the developer setup, place it in the same directory as the executable. There it will be detected by name. After you created a config file and it works fine, you can open a pull request to make the file available to other users. Please also add the device to the supported devices table above.
202+
[How to build the application for your platform](https://github.com/openandroidinstaller-dev/openandroidinstaller/blob/main/docs/building_the_application_for_your_platform.md)
212203

213-
#### Content of a config file
204+
[On unlocking the bootloader](https://github.com/openandroidinstaller-dev/openandroidinstaller/blob/main/docs/unlocking_the_bootloader.md)
214205

215-
A config file consists of two parts. The first part are some metadata about the device and the second parts are the steps to unlock the bootloader, boot a recovery and install the ROMs.
216-
217-
##### How to write Metadata
218-
Every config file should have `metadata` with the following fields:
219-
- `maintainer`: str; Maintainer and author of the config file.
220-
- `device_name`: str; Name of the device.
221-
- `is_ab_device`: bool; A boolean to determine if the device is a/b-partitioned or not.
222-
- `device_code`: str; The official device code.
223-
- `supported_device_codes`: List[str]; A list of supported device codes for the config. The config will be loaded based on this field.
224-
- `twrp-link`: [OPTIONAL] str; name of the corresponding twrp page.
225-
226-
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.
227-
- `android`: [OPTIONAL] int|str; Android version to install prior to installing a custom ROM.
228-
- `firmware`: [OPTIONAL] str; specific firmware version to install before installing a custom ROM.
229-
230-
##### How to write steps:
231-
Every step in the config file corresponds to one view in the application. These steps should contain the following fields:
232-
- `type`: str; Corresponds to the type of view to generate. There are the following options:
233-
- `text`: Just display the text given in content.
234-
- `confirm_button`: Display the content, as well as a button to allow the user to go to the next step.
235-
- `call_button`: Display the content text and a button that runs a given command. After the command is run, a confirm button is displayed to allow the user to move to the next step.
236-
- `call_button_with_input`: Display the content text, an input field and a button that runs a given command. The inputtext, can be used in the command by using the `<inputtext>` placeholder in the command field. After the command is run, a confirm button is displayed to allow the user to move to the next step.
237-
- `link_button_with_confirm`: Display a button that opens a browser with a given link, confirm afterwards. Link is given in `link`.
238-
- `img`: [OPTIONAL] Display an image on the left pane of the step view. Images are loaded from `openandroidinstaller/assets/imgs/`.
239-
- `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 `>`.
240-
- `link`: [OPTIONAL] Link to use for the link button if type is `link_button_with_confirm`.
241-
- `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`.
242-
- `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.
243-
244-
**Please try to retain this order of these fields in your config to ensure consistency.**
245-
246-
## How to build the application for your platform
247-
248-
The executables for the OpenAndroidInstaller are build with [pyinstaller](https://pyinstaller.org/en/stable/index.html). You can create builds for MacOS or Linux with `make build-app`. For Windows the paths need to be modified. For now, you can have a look [here](https://github.com/openandroidinstaller-dev/openandroidinstaller/blob/v0.1.2-alpha/.github/workflows/manual-build-windows.yml#L22) on how it's done.
249-
250-
If you build the application for your platform and want to contribute the build, please reach out to me.
251-
252-
#### On unlocking the bootloader
253-
Devices by *Samsung*, *Google* and *Fairphone* make it fairly easy to unlock the bootloader and receive good support in the installer.
206+
More details on how to contribute can be found [here](https://github.com/openandroidinstaller-dev/openandroidinstaller/blob/main/CONTRIBUTING.md).
207+
Please have a look before opening an issue or starting to contribute.
254208

255-
Some devices with require manual steps to unlock the bootloader. In general you will need to create an account at a vendor website and receive some code from there. OpenAndroidInstaller will try to guide you as far as possible. These vendors include *Sony, Motorola, Xiaomi* and *OnePlus* among others.
209+
A detailed list can be found [here](https://openandroidinstaller.org/#contribute).
256210

257-
Other phone vendors stops allowing to unlock the bootloader all together. There is nothing to be done if you didn't unlock your device in time. These vendors include *Huawei and LG* among others. Support for these vendors will always be very limited.
258211

259212
## Tools
260213

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
## How to build the application for your platform
2+
3+
The executables for the OpenAndroidInstaller are build with [pyinstaller](https://pyinstaller.org/en/stable/index.html). You can create builds for MacOS or Linux with `make build-app`. For Windows the paths need to be modified. For now, you can have a look [here](https://github.com/openandroidinstaller-dev/openandroidinstaller/blob/v0.1.2-alpha/.github/workflows/manual-build-windows.yml#L22) on how it's done.
4+
5+
If you build the application for your platform and want to contribute the build, please reach out to me.
6+
7+
## Run OpenAndroidInstaller for development
8+
9+
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.
10+
11+
1. Clone the main branch of this repository
12+
2. Run `make poetry` and `make install` to install poetry to manage python and install the required dependencies like adb, fastboot and heimdall.
13+
3. Run `make app` to start the desktop app from the source.
14+

0 commit comments

Comments
 (0)