Skip to content

Commit 423c7d7

Browse files
committed
add readme
1 parent 182e6ff commit 423c7d7

File tree

8 files changed

+71
-1
lines changed

8 files changed

+71
-1
lines changed

β€Ž.gitignoreβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ local.properties
88
.idea
99
*.iml
1010
*.ipr
11-
11+
.DS_Store
1212
# CMake
1313
cmake-build-*/
1414

β€ŽREADME.mdβ€Ž

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,73 @@
1212
alt="CI Status" />
1313
</a>
1414
</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+
| ![Screenshot 1](buildutils/screenshot/abm1.png) | ![Screenshot 2](buildutils/screenshot/abm2.png) | ![Screenshot 3](buildutils/screenshot/abm3.png) |
76+
|-------------------------------------------------|-------------------------------------------------|-------------------------------------------------|
77+
| ![Screenshot 4](buildutils/screenshot/abm4.png) | ![Screenshot 6](buildutils/screenshot/abm5.png) | ![Screenshot 6](buildutils/screenshot/abm6.png) |
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)
107 KB
Loading
28.9 KB
Loading
134 KB
Loading
100 KB
Loading
129 KB
Loading
122 KB
Loading

0 commit comments

Comments
Β (0)