|
12 | 12 | alt="CI Status" /> |
13 | 13 | </a> |
14 | 14 | </p> |
| 15 | + |
| 16 | +<p align="center">**Multi-boot for smartphones!**</p> |
| 17 | + |
| 18 | +## What is it? |
| 19 | + |
| 20 | +Android Boot Manager is an Android app and a couple of bootloader modifications, which are all based |
| 21 | +on a library called droidboot_gui. Additionally, there are scripts that automate patching operating |
| 22 | +systems created by third parties to work in the multi-boot environment. |
| 23 | + |
| 24 | +The Android app is the configuration frontend which oversees installing and updating operating |
| 25 | +systems, partitioning the storage and installing and configuring the bootloader modifications. |
| 26 | + |
| 27 | +The bootloader modifications are responsible for showing a graphical selection UI at boot time that |
| 28 | +lets you select the operating system you intend to start. There are three types of supported |
| 29 | +bootloaders: |
| 30 | +1. First-stage bootloader modifications, which means you modify/replace the bootloader that would |
| 31 | + usually start the Linux kernel. We prefer this. |
| 32 | +2. Creating or porting a second-stage bootloader, which will be loaded instead of the kernel and |
| 33 | + later loading the kernel from the second-stage bootloader. This is also good. |
| 34 | +3. The "no-bootloader workaround ramdisk", which runs inside the kernel and flashes the boot the |
| 35 | + user wants to boot, then reboots the device. This is really just a workaround. |
| 36 | + |
| 37 | +(A solution akin to MultiROM's kexec-hardboot would also be possible, however, we currently aren't |
| 38 | +pursuing this.) |
| 39 | + |
| 40 | +The scripts and device configuration files for the App are stored in the |
| 41 | +[Scripts](https://github.com/Android-Boot-Manager/Scripts) and |
| 42 | +[ABM-json](https://github.com/Android-Boot-Manager/ABM-json/tree/master/devices) repositories. |
| 43 | +These are intended to be very flexible and support many devices without changing the App code, |
| 44 | +at least not unless we release a major new feature. The operating systems are usually created by |
| 45 | +other communities and we only modify them to work in a multi-boot setup. Right now, Halium-based |
| 46 | +operating systems like [UBports' Ubuntu Touch](https://ubuntu-touch.io/) or |
| 47 | +[Droidian](https://droidian.org/) are supported best. We also support |
| 48 | +[SailfishOS](https://sailfishos.org/), and we are working on installing multiple Android systems as |
| 49 | +well. |
| 50 | + |
| 51 | +## What devices are supported? |
| 52 | + |
| 53 | +1. First-stage bootloaders |
| 54 | + - MediaTek lk |
| 55 | + - [Volla Phone (yggdrasil)](https://github.com/Android-Boot-Manager/droidboot_device_volla_yggdrasil) - MT6763 |
| 56 | + - Volla Phone X (yggdrasilx) - MT6763 |
| 57 | + - [Volla Phone 22 (mimameid)](https://github.com/Android-Boot-Manager/droidboot_device_volla_mimameid) - MT6768 |
| 58 | + - [Volla Phone X23 (vidofnir)](https://github.com/Android-Boot-Manager/droidboot_device_gigaset_gx4) - MT6789 |
| 59 | + - [U-Boot](https://github.com/Android-Boot-Manager/droidboot_device_generic_u-boot) |
| 60 | + - Qualcomm ABL EFI LinuxLoader |
| 61 | + - [F(x)tec Pro1](https://github.com/Android-Boot-Manager/droidboot_device_fxtec_pro1) - not ported to 0.3 yet |
| 62 | +2. Second-stage bootloaders |
| 63 | + - [Project Renegade's EDKII for MSM](https://github.com/Android-Boot-Manager/droidboot_device_renegade-uefi) |
| 64 | + - msmnilePkg - WIP? |
| 65 | + - [lk2nd](https://github.com/Android-Boot-Manager/droidboot_device_qcom_lk2nd) |
| 66 | + |
| 67 | +## How do I install it? |
| 68 | +You need a rooted and supported device to get started. The detailed instructions can be found on our |
| 69 | +[MediaWiki instance](https://wiki.andbootmgr.org). |
| 70 | + |
| 71 | +## Why? |
| 72 | +Why not? |
| 73 | + |
| 74 | +## Screenshots |
| 75 | +|  |  |  | |
| 76 | +|-------------------------------------------------|-------------------------------------------------|-------------------------------------------------| |
| 77 | +|  |  |  | |
| 78 | + |
| 79 | +## Credits |
| 80 | +- [M1cha](https://github.com/M1cha) for efidroid, arguably the best approach for multi-booting |
| 81 | +- [Mis012](https://github.com/Mis012) for re-boot2, which we borrowed some code from |
| 82 | +- [Renegade Project](https://github.com/edk2-porting) for edk2-msm |
| 83 | +- [WOA msmnile](https://github.com/woa-msmnile/msmnilePkg) for msmnilePkg |
| 84 | +- [calebccff](https://github.com/calebccff) |
0 commit comments