GithubHelp home page GithubHelp logo

openandroidinstaller-dev / openandroidinstaller Goto Github PK

View Code? Open in Web Editor NEW
413.0 10.0 33.0 2.84 MB

Makes installing alternative Android distributions nice and easy.

Home Page: https://openandroidinstaller.org

License: GNU General Public License v3.0

Makefile 0.59% Python 99.41%
android lineage-os lineageos lineageos-devices open-source rom unofficial macos windows linux

openandroidinstaller's Introduction

OpenAndroidInstaller

OpenAndroidInstaller

Makes installing alternative Android distributions nice and easy!

License Release Downloads Flathub Twitter Mastodon

The OpenAndroidInstaller project helps Android users to keep their smartphone's operating system up to date with free software and to continue using the device even though the manufacturer no longer offers updates. With a graphical installation software, users are easily guided through the installation process of free Android operating systems like LineageOS.

Website · Report Bugs · Request Feature

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

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.

1. Download OpenAndroidInstaller

Warning

ARM-based systems are not supported.

OpenAndroidInstaller support all three major operating systems, namely Linux, macOS and Windows. You can download the correct version for you system from the GitHub Releases.

The executables are compressed inside .zip files, so you'll have to extract them first (make sure you have extracting software installed). If you get prompted to, you'll have to adjust the permission of the executable to ensure its proper functionality.

If you run Windows, you might also need to install the Universal USB Drivers and other potentially drivers needed for your device.

For Linux, a Flatpak version is available in Flathub, org.openandroidinstaller.OpenAndroidInstaller.

2. Download the custom ROM, recovery image & optional add-ons

Here are the official links for:

3. Start OpenAndroidInstaller

After starting the app you will be prompted to plug your device into your computer and you will be given a step-by-step tutorial on how to install your new OS for your specific device.

Officially supported devices

Currently, the we support 86 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.

Fairphone
Vendor Device Name CodeName Models Status
Fairphone Fairphone 2 FP2 tested
Fairphone Fairphone 3 FP3 tested
Fairphone Fairphone 4 FP4 tested
Google
Vendor Device Name CodeName Models Status
Google Pixel 2 walleye walleye tested
Google Pixel 2 XL taimen taimen tested
Google Pixel 3 blueline blueline tested
Google Pixel 3 XL crosshatch crosshatch tested
Google Pixel 3a sargo sargo tested
Google Pixel 3a XL bonito bonito tested
Google Pixel 4 flame flame tested
Google Pixel 4 XL coral coral tested
Google Pixel 4a sunfish sunfish tested
Google Pixel 5 redfin redfin tested
Google Pixel 5a barbet barbet tested
Motorola
Vendor Device Name CodeName Models Status
Motorola edge racer XT2063-2, XT2063-3 tested
Motorola moto g5 cedric XT1670, XT1671, XT1672, XT1675, XT1676, XT1677 tested
Motorola moto g6 plus evert XT1926-2, XT1926-3, XT1926-5, XT1926-6, XT1926-7, XT1926-8, XT1926-9 tested
Motorola moto g7 power ocean XT1955-1, XT1955-2, XT1955-4, XT1955-5, XT1955-7 tested
Motorola moto g 5G plus / one 5G nairo XT2075-3, XT2075-5 tested
Motorola moto g 5G / one 5G ace kiev XT2113-2, XT2113-3 tested
Motorola moto z griffin XT1650-3, XT1650-05 tested
OnePlus
Vendor Device Name CodeName Models Status
OnePlus One bacon A0001 tested
OnePlus 3/3T oneplus3 A3000, A3003, A3010 untested
OnePlus 5 cheeseburger A5000 tested
OnePlus 5T dumpling A5010 tested
OnePlus 6 enchilada A6000, A6003 tested
OnePlus 6T fajita A6010, A6013 tested
OnePlus 7 guacamoleb GM1900, GM1901, GM1903, GM1905 tested
OnePlus 7 Pro guacamole GM1910, GM1911, GM1913, GM1917 tested
OnePlus 7T hotdogb HD1900, HD1901, HD1903, HD1905 tested
OnePlus 7T Pro hotdog HD1910, HD1911, HD1913, HD1917 tested
OnePlus Nord avicii AC2001, AC2003 tested
OnePlus Nord N200 dre DE2117 tested
OnePlus 9 lemonade LE2110, LE2111, LE2113, LE2115 under development
Samsung
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 SM-A510F tested
Samsung Galaxy A5 2017 a5y17lte tested
Samsung Galaxy A7 2016 a7xelte tested
Samsung Galaxy A7 2017 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 T813 tested
Samsung Galaxy S4 jfltexx untested
Samsung Galaxy S4 Mini LTE serranoltexx tested
Samsung Galaxy S5 klte G900F/M/R4/R7/T/V/W8 tested
Samsung Galaxy S5 mini kminilte SM-G800F/M/Y tested
Samsung Galaxy S6 zerofltexx tested
Samsung Galaxy S6 Edge zeroltexx tested
Samsung Galaxy S7 herolte SM-G930F tested
Samsung Galaxy S7 Edge hero2lte tested
Samsung Galaxy S8 dreamlte tested
Samsung Galaxy S9 starlte tested
Samsung Galaxy S10 beyond1lte tested
Samsung Galaxy S10e beyond0lte tested
Samsung Galaxy S10+ beyond2lte tested
Samsung Galaxy Note 3 LTE hltetmo N900T/V/W8 tested
Samsung Galaxy Note 8 greatlte SM-N950F tested
Samsung Galaxy Note 9 crownlte tested
Samsung Galaxy Note 10 d1 tested
Samsung Galaxy Note 10+ d2s tested
Sony
Vendor Device Name CodeName Models Status
Sony Xperia Z yuga C6603 tested
Sony Xperia Z3 z3 tested
Sony Xperia 10 kirin tested
Sony Xperia 10 Plus mermaid tested
Sony Xperia XA2 pioneer tested
Sony Xperia XZ2 akari tested
Sony Xperia XZ3 akatsuki tested
Sony Xperia XZ kagura planned
Xiaomi & Poco
Vendor Device Name CodeName Models Status
Xiaomi Redmi 7A / 8 / 8A / 8A Dual Mi439 : pine / olive / olivelite / olivewood tested
Xiaomi Redmi 9A / 9C / 9AT / 9i / 9A Sport / 10A / 10A Sport garden / dandelion / blossom / angelican tested
Xiaomi Redmi 9 / Poco M2 lancelot / galahad / shivan untested
Xiaomi Redmi Note 7 lavender tested
Xiaomi Redmi Note 8 / 8T ginkgo / willow untested
Xiaomi Redmi Note 8 Pro begonia untested
Xiaomi Redmi Note 9S / 9 Pro / 9 Pro Max / 10 Lite / Poco M2 pro miatoll : gram / curtana / excalibur / joyeuse untested
Xiaomi Redmi Note 10S / 11SE / Poco M5S rosemary / maltose / secret /rosemary_p untested
Xiaomi Mi A2 / Mi 6X jasmine_sprout untested
Xiaomi Mi 8 dipper untested
Xiaomi Mi 9T / Redmi K20 davinci / davinciin untested
Xiaomi Redmi K20 Pro / Mi 9T Pro raphael / raphaelin untested
Xiaomi Redmi Note 10 Pro sweet M2101K6G tested
Xiaomi Redmi K40 / Mi 11X / Poco F3 alioth / aliothin untested
Xiaomi Poco X3 / X3 NFC surya / karna untested
Xiaomi Poco X3 Pro vayu tested
Xiaomi 12 cupid untested

... and more to come!

Tutorials

Contributing

All kinds of contributions are welcome. These include and are not limited to:

  • Fixing and improving 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 improving the codebase
  • Reporting bugs

Make sure to check if your issue or PR has already been fixed or implemented before opening a new one!

More sources:

Acknowledgements

  • The project received financial support from the German Federal Ministry for Education and Research under the grant identifier 01IS22S26 from September 2022 until February 2023.

logos of the "Bundesministerium für Bildung und Forschung", Prodotype Fund and OKFN-Deutschland

Credits

  • The Android SDK Platform Tools (such as adb and fastboot) are Apache-licensed universal Android utilities
  • Heimdall is an MIT-licensed replacement for the leaked ODIN tool to flash Samsung devices.
  • libusb-1.0 is a LGPL-2.1-licensed library for USB device access from Linux, macOS, Windows and others.
  • copy-partitions-20220613-signed.zip The copy-partitions script was created by LineageOS developer erfanoabdi and filipepferraz and released under LGPL. (It's used when the partitions need to be copied before flashing)

License

Original development by Tobias Sterbak. Copyright (C) 2022-2024.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see gnu.org/licenses.

openandroidinstaller's People

Contributors

allaeddineomc avatar anon1892 avatar axtloss avatar bjornw avatar dependabot[bot] avatar freechelmi avatar gredin67 avatar heus-sueh avatar kianmeng avatar ludovicrousseau avatar magiclike avatar raptag avatar sirrgb avatar tsterbak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openandroidinstaller's Issues

Stuck when flashing custom recovery

Hi,

I'm trying to install lineageOS on a OnePlus 5T dumpling. Everything step is crossed successfully until Flash custom recovery. Once the Continue button is hit, nothing happens anymore. I can leave the device plugged for hours without any progress. What can I do to help diagnose the issue?

djiko@blacksad:~/Apps/openandroidinstaller-v0.4.0-beta-ubuntu-latest$ ./openandroidinstaller 
2023-02-19 12:03:20.296 | INFO     | __main__:main:217 - Running OpenAndroidInstaller version '0.4.0-beta' on 'linux'.
2023-02-19 12:03:20.299 | INFO     | __main__:log_version_infos:202 - Android Debug Bridge version 1.0.41
2023-02-19 12:03:20.302 | INFO     | __main__:log_version_infos:208 - fastboot version 34.0.0-9570255
2023-02-19 12:03:20.305 | INFO     | __main__:log_version_infos:213 - Heimdall version: Heimdall v1.4.2
2023-02-19 12:03:20.305 | INFO     | __main__:main:219 - ----------------------------------------------------------------------------------------------------
2023-02-19 12:05:35.181 | INFO     | __main__:to_next_view:179 - Confirmed and moved to next step.
2023-02-19 12:05:42.252 | INFO     | tooling:search_device:386 - Search devices on linux with /tmp/_MEI1F7Mx9/bin...
2023-02-19 12:05:45.260 | ERROR    | tooling:search_device:420 - Failed to detect a device.
2023-02-19 12:05:45.261 | INFO     | tooling:check_ab_partition:426 - Run on linux with /tmp/_MEI1F7Mx9/bin...
2023-02-19 12:05:45.270 | INFO     | tooling:check_ab_partition:460 - This is not an a/b-partitioned device.
2023-02-19 12:05:45.270 | INFO     | views.start_view:search_devices:232 - No device detected! Connect to USB and try again.
2023-02-19 12:05:54.181 | INFO     | tooling:search_device:386 - Search devices on linux with /tmp/_MEI1F7Mx9/bin...
2023-02-19 12:05:54.239 | INFO     | tooling:search_device:417 - OnePlus5T
2023-02-19 12:05:54.240 | INFO     | tooling:check_ab_partition:426 - Run on linux with /tmp/_MEI1F7Mx9/bin...
2023-02-19 12:05:54.276 | INFO     | tooling:check_ab_partition:460 - This is not an a/b-partitioned device.
2023-02-19 12:05:54.283 | SUCCESS  | installer_config:validate_config:187 - Config is valid.
2023-02-19 12:05:54.284 | INFO     | installer_config:_load_config:142 - Loaded device config from /tmp/_MEI1F7Mx9/assets/configs/dumpling.yaml.
2023-02-19 12:05:54.284 | INFO     | installer_config:_load_config:144 - Config metadata: {'maintainer': 'SirRGB', 'devicename': 'OnePlus 5T', 'devicecode': 'dumpling', 'twrp-link': 'cheeseburger_dumpling'}.
2023-02-19 12:05:57.014 | INFO     | views.start_view:check_bootloader_unlocked:101 - Skipping bootloader unlocking.
2023-02-19 12:05:59.649 | INFO     | __main__:to_next_view:179 - Confirmed and moved to next step.
2023-02-19 12:06:03.570 | INFO     | views.requirements_view:enable_continue_button:281 - All requirements ticked. Allow to continue
2023-02-19 12:06:04.670 | INFO     | __main__:to_next_view:179 - Confirmed and moved to next step.
2023-02-19 12:06:04.670 | INFO     | utils:get_download_link:27 - Checking https://download.lineageos.org/dumpling
2023-02-19 12:06:05.081 | INFO     | utils:get_download_link:32 - https://download.lineageos.org/dumpling exists.
2023-02-19 12:06:22.886 | INFO     | views.select_view:pick_image_result:254 - Selected image from /home/djiko/Apps/openandroidinstaller-v0.3.5-alpha-ubuntu-latest/lineage-20.0-20230207-nightly-dumpling-signed.zip
2023-02-19 12:06:22.888 | INFO     | utils:image_works_with_device:52 - Image works with device: ['dumpling', 'OnePlus5T', 'oneplus5t']
2023-02-19 12:06:22.888 | SUCCESS  | utils:image_works_with_device:57 - Device supported by the selected image.
2023-02-19 12:06:31.138 | INFO     | views.select_view:pick_recovery_result:280 - Selected recovery from /home/djiko/Apps/openandroidinstaller-v0.3.5-alpha-ubuntu-latest/twrp-3.7.0_12-1-cheeseburger_dumpling.img
2023-02-19 12:06:31.138 | SUCCESS  | utils:recovery_works_with_device:73 - Device supported by the selected recovery.
2023-02-19 12:06:31.139 | INFO     | utils:image_works_with_device:52 - Image works with device: ['dumpling', 'OnePlus5T', 'oneplus5t']
2023-02-19 12:06:31.139 | SUCCESS  | utils:image_works_with_device:57 - Device supported by the selected image.
2023-02-19 12:06:31.139 | SUCCESS  | utils:recovery_works_with_device:73 - Device supported by the selected recovery.
2023-02-19 12:06:31.139 | INFO     | views.select_view:enable_button_if_ready:325 - Image and recovery work with the device. You can continue.
2023-02-19 12:06:33.861 | INFO     | __main__:to_next_view:179 - Confirmed and moved to next step.
2023-02-19 12:06:33.861 | INFO     | views.step_view:build:121 - Starting step of type call_button.
2023-02-19 12:06:41.052 | INFO     | views.step_view:check_advanced_switch:85 - Enable advanced output.
2023-02-19 12:07:12.033 | INFO     | tooling:logging:83 - Rebooting device into bootloader with adb. - Paramters: {'bin_path': PosixPath('/tmp/_MEI1F7Mx9/bin')}
2023-02-19 12:07:12.039 | INFO     | tooling:run_command:56 - Run command: ['/tmp/_MEI1F7Mx9/bin/adb', 'reboot', 'bootloader']
2023-02-19 12:07:21.279 | SUCCESS  | views.step_view:call_to_phone:256 - Command adb_reboot_bootloader run successfully. Allow to continue.
2023-02-19 12:07:31.049 | INFO     | __main__:to_next_view:179 - Confirmed and moved to next step.
2023-02-19 12:07:31.052 | INFO     | views.step_view:build:121 - Starting step of type call_button.
2023-02-19 12:07:37.565 | INFO     | tooling:logging:83 - Flash or boot custom recovery with fastboot. - Paramters: {'recovery': '/home/djiko/Apps/openandroidinstaller-v0.3.5-alpha-ubuntu-latest/twrp-3.7.0_12-1-cheeseburger_dumpling.img', 'is_ab': False, 'bin_path': PosixPath('/tmp/_MEI1F7Mx9/bin')}
2023-02-19 12:07:37.566 | INFO     | tooling:fastboot_flash_recovery:340 - Flash custom recovery with fastboot.
2023-02-19 12:07:37.567 | INFO     | tooling:run_command:56 - Run command: ['/tmp/_MEI1F7Mx9/bin/fastboot', 'flash', 'recovery', '/home/djiko/Apps/openandroidinstaller-v0.3.5-alpha-ubuntu-latest/twrp-3.7.0_12-1-cheeseburger_dumpling.img']
2023-02-19 12:07:37.570 | INFO     | tooling:run_command:68 - < waiting for any device >

Move project to a real free code hoster

The project is quit young.
Because of that now it is easier than later. 😄

I strongly suggest to move to a free (as free in FOSS) code hoster; for example https://codeberg.org

Microsoft GitHub does use a closed source server software, steal your code to train machine learning algorithms, is owned by one of the GAFAM companies.

linux distribution compatibility and CI packaging

just an early heads up, not wanting to divert you from the important work that you started - you can close this or refer to when the packaging topic comes up again. See at the end I think this will resolve itself for most.

I gave the v.0.21-alpha a run in debian-sid that is more current than the ubuntu in the github workflow (20.04 currently). At start it complains about missing rendering libraries, but the error is misleading, it's about library compatibility.

libEGL warning: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

pointing it to swrast specifically with LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/ LIBGL_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri/ LIBGL_ALWAYS_SOFTWARE=1 ./openandroidinstaller gives it away

libEGL warning: MESA-LOADER: failed to open swrast: /tmp/_MEIuW7CIn/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/lib/x86_64-linux-gnu/dri//swrast_dri.so) (search paths /usr/lib/x86_64-linux-gnu/dri/, suffix _dri)

I see the installer is extracting static libraries into /tmp/_M. The libstdc++.so.6 therin uses the host mesa libraries that are complied against more current libc than what you'd have from the build by the github workflow. Because they use symbols the shipped libstdc++ hasn't those can't be loaded. There is an issue on it at flutter that I commented - flutter/flutter#76178 (comment)

One remedy can be to use the ubuntu-22.04 tag in the CI instead of ubuntu-latest that points to 20.04 still. But I see the tag will roll over to 22.04 any day now: actions/runner-images#6399

With time this can creep back in when users move ahead in their versions. Packaging for flatpak / snap base-packages of those libraries and/or for distribution versions once you move towards a v1.0 can help.

Automatic builds for linux

Create AppImages and Exceutables automatically with github actions and upload them as release artifacts here.

custom recoveries

While most devices support twrp it isnt the case for all lineage supported devices. Id suggest adding support for at least the lineage recoveries if thats possible.
edit:
I foolishly just tested it renaming the lineage recoveryimage and saw that you are using some twrp specific commands, so that cant work obv. When installing ota updates there it sometimes says "executing openrecovery script" so that might be helpful... In addition a lot of twrp based custom recoveries exist, which probably still contain these functions, but I have to test that myself ig.

Make logs accessible

Allow users to get logs of the tool.
Options:

  • a button to get the logs as a copy-able textfield
  • logs to file

Bootloader unlock options

auf dem Eingangsbildschirm

  • Schalter ob Bootloader bereits entsperrt ist ohne, dass das Gerät erkannt wurde setzbar machen

im Bootloader Unlock Step

  • Falls man vergessen hat den Schalter vorher zu setzen, hier einfach nochmal einen Button einbauen um es zu überspringen

Using Peertube as video provider

I just saw the video embedded on the website and had an idea: Why not use Peertube as a video provider for such showcases and in general for update videos?

If you are on the look for a relatively small, but well managed instance with great storage options, I can recommend Peertube.TV.

Allow selecting configs

This feature should display a list of available configs once a device is detected. The matching config should be selected and highlighted. If no matching is found, let the user select one or cancel.

Magisk support

Can this tool be used to more easily install Magisk on top of LineageOS (or other ROMs)?

Use adb wait-for-recovery and adb wait-for-sideload

Maybe a lot of the sleep commands in the flashing steps can be removed by properly waiting. This also should increase stability of the process. Might not be supported on all devices or TWRP version?

To be tested.

Debug mode bauen

Richtigen Debug mode bauen, sodass die anwendung für tests mit gemockter Deviceinteraction getestet werden kann.

Add logging

Proper logging should be added to the application.

Questions:

  • Is it enough to only log to stout?
  • Do we need a logfile?

Add translations

It would be nice to be able to translate this project. Using services like Weblate, it is possible for other people to translate OpenAndroidInstaller into their own languages. Also such platforms allow automatic translations which then can be corrected by users.

Consider switching to Codeberg

Moving (or at least mirroring/syncing) the whole repo and all code over to Codeberg, a libre, free, open-source, privacy-friendly and non-profit Git platform, running the Gittea soft-fork Forgejo.

If you need any help with the transfer I am happy to assist.

Add option for displaying specific text about a requirement

Some devices have requirements that if not met will result in a failed flash and brick. Could be a soft brick but still something you want to try hard to prevent.
An example is the OnePlus Nord N200. Attempting to flash a custom rom while your device is on android 12 will result in a soft brick. I suggest adding the ability to display specific text about requirements and an optional field in the device config file to specify the message to display about the requirement. I'd also suggest a "brick risk" flag for cases where failing to meet the requirement is known for certain to result in a brick that is difficult or even impossible to recover from. In that case a large danger icon could be displayed to help communicate the danger to the user.

Add support for Samsung Galaxy J7 TMobile version

My phone is detected as j7eltetmo. I suspect it might be able to use the same config as j7elte. It would also be nice to have an option to choose from the list if the detection fails to match exactly.

Issue with device codes for OnePlus devices

For (some) OnePlus devices the device code read by adb is the name of the device (guacamoleb -> OnePlus7).

Todo:

  • Figure out if this is the case in general.
  • Adapt the configs accordingly.

Dark mode complaints

When starting the app it runs in UI dark mode (my OS default). A few issues appear:

  • white text on yellow background is hard to read
  • the workflow diagram isn't properly displayed on the dark background

Screenshot 2023-01-09 at 19 53 22
Screenshot 2023-01-09 at 19 53 53

Config Request for Galaxy Note 3 T-Mobile Version (SM-N900T)

I mentioned in the other repo that the drivers/firmware for the baseband modem were hard for me to find, but I may have found a few potentially good sources:
https://forum.xda-developers.com/t/new-update-n900tuvufqd2-available.3615614/
https://aiomobilestuff.com/galaxy-note-3-sm-n900t-n900ttmbfol1-firmware/?amp=1
https://forum.xda-developers.com/t/rom-official-11-lineageos-18-1-for-samsung-galaxy-note-3-hlte.4267527/
(Last one is more general, but there might be good information for the config and links to firmware in there)

LineageOS + OnePlus 6

Installer
I donwloaded the latest nightly of LineageOS 20.0 and 19.1 - both don't seem to be the right version. What am I doing wrong?

Use SVG format for images inside app

I think that SVGs are superior in use when an app needs to be scaled to any resolution.
Also I noticed the steps header being pixelated. Using SVGs instead of PNGs would solve these problems.

[Feature] Testing for Pixel 3a XL

I recently purchased a Pixel 3a XL and am trying to migrate from Ubuntu Touch to Lineage OS.

As long as it isn't damaging to the device, I would love to be a tester for providing support for the machine if possible.
It is reasonable for me to test the installer with the 3a image? What should I keep in mind beforehand.

make build-app not working because of missing favicon.ico

╰─ make build-app                                                                            (openandroidinstaller) 
poetry run pyinstaller openandroidinstaller/openandroidinstaller.py --noconsole --noconfirm --onefile --icon "/assets/favicon.ico" --add-data "openandroidinstaller/assets:assets" --add-binary "openandroidinstaller/bin/adb:bin" --add-binary "openandroidinstaller/bin/fastboot:bin" --add-binary "openandroidinstaller/bin/heimdall:bin"
Configuration file exists at /Users/cls/Library/Application Support/pypoetry, reusing this directory.

Consider moving configuration to /Users/cls/Library/Preferences/pypoetry, as support for the legacy directory will be removed in an upcoming release.
836 INFO: PyInstaller: 5.3
836 INFO: Python: 3.10.6 (conda)
856 INFO: Platform: macOS-12.6-arm64-i386-64bit
857 INFO: wrote /Users/cls/Documents/Work/Projects/PrototypeFund/Sandbox/openandroidinstaller/openandroidinstaller.spec
859 INFO: UPX is not available.
860 INFO: Extending PYTHONPATH with paths
['/Users/cls/Documents/Work/Projects/PrototypeFund/Sandbox/openandroidinstaller/openandroidinstaller']
1144 INFO: checking Analysis
1144 INFO: Building Analysis because Analysis-00.toc is non existent
1144 INFO: Initializing module dependency graph...
1145 INFO: Caching module graph hooks...
1150 INFO: Analyzing base_library.zip ...
3429 INFO: Processing pre-find module path hook distutils from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks/pre_find_module_path/hook-distutils.py'.
3485 INFO: distutils: retargeting to non-venv dir '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10'
4027 INFO: Caching module dependency graph...
4088 INFO: running Analysis Analysis-00.toc
4093 INFO: Analyzing /Users/cls/Documents/Work/Projects/PrototypeFund/Sandbox/openandroidinstaller/openandroidinstaller/openandroidinstaller.py
4642 INFO: Processing pre-safe import module hook urllib3.packages.six.moves from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-urllib3.packages.six.moves.py'.
5704 INFO: Processing pre-safe import module hook six.moves from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks/pre_safe_import_module/hook-six.moves.py'.
6142 INFO: Processing module hooks...
6142 INFO: Loading module hook 'hook-cryptography.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
7004 INFO: Loading module hook 'hook-regex.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
7005 INFO: Loading module hook 'hook-certifi.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/_pyinstaller_hooks_contrib/hooks/stdhooks'...
7006 INFO: Loading module hook 'hook-flet.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/flet/__pyinstaller'...
7007 INFO: Loading module hook 'hook-pkg_resources.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
7419 INFO: Processing pre-safe import module hook win32com from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/_pyinstaller_hooks_contrib/hooks/pre_safe_import_module/hook-win32com.py'.
7834 INFO: Loading module hook 'hook-xml.etree.cElementTree.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
7834 INFO: Loading module hook 'hook-lib2to3.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
7847 INFO: Loading module hook 'hook-_tkinter.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
7902 INFO: checking Tree
7902 INFO: Building Tree because Tree-00.toc is non existent
7902 INFO: Building Tree Tree-00.toc
7907 INFO: checking Tree
7907 INFO: Building Tree because Tree-01.toc is non existent
7907 INFO: Building Tree Tree-01.toc
7938 INFO: checking Tree
7938 INFO: Building Tree because Tree-02.toc is non existent
7938 INFO: Building Tree Tree-02.toc
7939 INFO: Loading module hook 'hook-encodings.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
8089 INFO: Loading module hook 'hook-distutils.util.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
8092 INFO: Loading module hook 'hook-platform.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
8092 INFO: Loading module hook 'hook-packaging.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
8092 INFO: Loading module hook 'hook-pickle.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
8094 INFO: Loading module hook 'hook-heapq.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
8095 INFO: Loading module hook 'hook-difflib.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
8096 INFO: Loading module hook 'hook-multiprocessing.util.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
8097 INFO: Loading module hook 'hook-sysconfig.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
8104 INFO: Loading module hook 'hook-xml.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
8126 INFO: Loading module hook 'hook-distutils.py' from '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks'...
8142 INFO: Looking for ctypes DLLs
8152 INFO: Analyzing run-time hooks ...
8155 INFO: Including run-time hook '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py'
8156 INFO: Including run-time hook '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks/rthooks/pyi_rth_subprocess.py'
8156 INFO: Including run-time hook '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pkgutil.py'
8157 INFO: Including run-time hook '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks/rthooks/pyi_rth_multiprocessing.py'
8159 INFO: Including run-time hook '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/flet/__pyinstaller/rthooks/pyi_rth_localhost_fletd.py'
8159 INFO: Including run-time hook '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks/rthooks/pyi_rth_pkgres.py'
8161 INFO: Including run-time hook '/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/hooks/rthooks/pyi_rth__tkinter.py'
8168 INFO: Looking for dynamic libraries
8560 INFO: Looking for eggs
8560 INFO: Python library not in binary dependencies. Doing additional searching...
8562 INFO: Using Python library /Users/cls/miniforge3/envs/openandroidinstaller/lib/libpython3.10.dylib
8566 INFO: Warnings written to /Users/cls/Documents/Work/Projects/PrototypeFund/Sandbox/openandroidinstaller/build/openandroidinstaller/warn-openandroidinstaller.txt
8593 INFO: Graph cross-reference written to /Users/cls/Documents/Work/Projects/PrototypeFund/Sandbox/openandroidinstaller/build/openandroidinstaller/xref-openandroidinstaller.html
8607 INFO: Appending 'binaries' from .spec
8607 INFO: Appending 'datas' from .spec
8613 INFO: checking PYZ
8613 INFO: Building PYZ because PYZ-00.toc is non existent
8613 INFO: Building PYZ (ZlibArchive) /Users/cls/Documents/Work/Projects/PrototypeFund/Sandbox/openandroidinstaller/build/openandroidinstaller/PYZ-00.pyz
9039 INFO: Building PYZ (ZlibArchive) /Users/cls/Documents/Work/Projects/PrototypeFund/Sandbox/openandroidinstaller/build/openandroidinstaller/PYZ-00.pyz completed successfully.
9048 INFO: EXE target arch: arm64
9048 INFO: Code signing identity: None
9049 INFO: checking PKG
9049 INFO: Building PKG because PKG-00.toc is non existent
9049 INFO: Building PKG (CArchive) openandroidinstaller.pkg
18432 INFO: Building PKG (CArchive) openandroidinstaller.pkg completed successfully.
18437 INFO: Bootloader /Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/bootloader/Darwin-64bit/runw
18437 INFO: checking EXE
18437 INFO: Building EXE because EXE-00.toc is non existent
18437 INFO: Building EXE from EXE-00.toc
18437 INFO: Copying bootloader EXE to /Users/cls/Documents/Work/Projects/PrototypeFund/Sandbox/openandroidinstaller/dist/openandroidinstaller
18437 INFO: Converting EXE to target arch (arm64)
18458 INFO: Removing signature(s) from EXE
18481 INFO: Appending PKG archive to EXE
18549 INFO: Fixing EXE headers for code signing
18555 INFO: Rewriting the executable's macOS SDK version (12.1.0) to match the SDK version of the Python library (11.0.0) in order to avoid inconsistent behavior and potential UI issues in the frozen application.
18555 INFO: Re-signing the EXE
18861 INFO: Building EXE from EXE-00.toc completed successfully.
18867 INFO: checking BUNDLE
18867 INFO: Building BUNDLE because BUNDLE-00.toc is non existent
18867 INFO: Building BUNDLE BUNDLE-00.toc
Traceback (most recent call last):
  File "/Users/cls/miniforge3/envs/openandroidinstaller/bin/pyinstaller", line 8, in <module>
    sys.exit(run())
  File "/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/__main__.py", line 178, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/__main__.py", line 59, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/building/build_main.py", line 934, in main
    build(specfile, distpath, workpath, clean_build)
  File "/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/building/build_main.py", line 856, in build
    exec(code, spec_namespace)
  File "/Users/cls/Documents/Work/Projects/PrototypeFund/Sandbox/openandroidinstaller/openandroidinstaller.spec", line 46, in <module>
    app = BUNDLE(
  File "/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/building/osx.py", line 103, in __init__
    self.__postinit__()
  File "/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/building/datastruct.py", line 173, in __postinit__
    self.assemble()
  File "/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/building/osx.py", line 128, in assemble
    self.icon = normalize_icon_type(self.icon, ("icns",), "icns", CONF["workpath"])
  File "/Users/cls/miniforge3/envs/openandroidinstaller/lib/python3.10/site-packages/PyInstaller/building/icon.py", line 34, in normalize_icon_type
    raise FileNotFoundError(f"Icon input file {icon_path} not found")
FileNotFoundError: Icon input file /assets/favicon.ico not found
make: *** [build-app] Error 1

Check for requirements before allowing the install

The installer should check if the requirements specified in the config are satisfied.

Steps:

  • add a "requirements" section to the config and implement the necessary steps to read it
  • implement how requirements are checked
  • requirements include
    • firmware version
    • correct device type (and id)
    • available drivers?
    • etc?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.