mirror of
https://github.com/ivoszbg/uniLoader.git
synced 2024-12-03 09:20:08 +00:00
README: Rework it according to the totally-recent build changes
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
This commit is contained in:
parent
108caaa77f
commit
1b6ce821f7
80
README.md
80
README.md
@ -1,25 +1,61 @@
|
||||
# uniLoader
|
||||
A simple secondary bootloader that is capable of loading Linux for Android and iOS based devices.
|
||||
A secondary bootloader that is capable of loading the upstream Linux kernel for Android and iOS-based devices.</br></br>
|
||||
The purpose behind it is to provide a small shim for avoiding vendor bootloader quirks.</br>
|
||||
> (ex.: some newer Exynos phones leave decon framebuffer refreshing disabled right before jumping to kernel, which makes initial debugging efforts when bringing up the platform to upstream linux hard)</br>
|
||||
The currently supported architectures are ARMV7 and AARCH64.</br>
|
||||
|
||||
## Preparation
|
||||
1. Install a toolchain that matches your target architecture (ex. AArch64 cross-toolchain):
|
||||
```sh
|
||||
sudo apt install aarch64-linux-gnu
|
||||
```
|
||||
2. Clone the repository:
|
||||
```sh
|
||||
git clone https://github.com/ivoszbg/uniLoader
|
||||
```
|
||||
3. Navigate to the project directory:
|
||||
```sh
|
||||
cd uniLoader
|
||||
```
|
||||
4. Place your kernel and device tree blobs under the `blob/` directory.
|
||||
|
||||
### Make Syntax
|
||||
```sh
|
||||
make ARCH=<arch> CROSS_COMPILE=<toolchain>
|
||||
```
|
||||
|
||||
### Building Example
|
||||
```sh
|
||||
sudo apt install aarch64-linux-gnu
|
||||
git clone https://github.com/ivoszbg/uniLoader
|
||||
cd uniLoader
|
||||
cp /home/user/linux/arch/arm64/boot/Image blob/Image
|
||||
cp /home/user/linux/arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb blob/dtb
|
||||
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4 dreamlte_defconfig
|
||||
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
```sh
|
||||
For Apple devices: Load the generated uniLoader binary via PongoOS.
|
||||
For Android devices: Replace the Linux kernel in your boot.img with the uniLoader binary.
|
||||
```
|
||||
|
||||
### TODO LIST
|
||||
1. [C] Allow loading instead of PongoOS for Apple devices;
|
||||
2. [C] Fix/replace the libc implementation;
|
||||
3. [M] Implement a serial library and make the debug lib less hacky;
|
||||
4. [M] Implement more features:
|
||||
> New devices</br>
|
||||
> Boot menu with countdown timer and selectable items via GPIO volume keys</br>
|
||||
> Threaded execution
|
||||
|
||||
<h6>
|
||||
[C] = Critical for overall ease of use and functionality</br>
|
||||
[M] = Nice to have :)
|
||||
</h6>
|
||||
|
||||
### License
|
||||
|
||||
# Building
|
||||
1. Install aarch64-linux-gnu
|
||||
2. ```git clone https://github.com/ivoszbg/uniLoader```
|
||||
3. ```cd uniLoader```
|
||||
4. Place your kernel and device tree blobs under blob/
|
||||
5. ```make BOARD=(oem)-(board-codename) SOC=(device-soc)```<br />
|
||||
# Building example
|
||||
```sudo apt install aarch64-linux-gnu```<br />
|
||||
```git clone https://github.com/ivoszbg/uniLoader```<br />
|
||||
```cd uniLoader```<br />
|
||||
```cp /home/user/linux/arch/arm64/boot/Image blob/Image```<br />
|
||||
```cp /home/user/linux/arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb blob/dtb```<br />
|
||||
```make BOARD=samsung-dreamlte SOC=exynos8895```
|
||||
# Usage
|
||||
For Apple devices: Load the generated **uniLoader** binary via PongoOs (TODO: allow loading **instead** of PongoOs)<br /><br />
|
||||
For Android devices: Replace the linux kernel in your *boot.img* with the **uniLoader** binary
|
||||
# Credits
|
||||
VDavid003 - for his sboot wrapper<br />
|
||||
Quack723 - Contributor<br />
|
||||
Ivoszbg - Making this huge mess of a bootloader
|
||||
# License
|
||||
This project is licensed under GPL2.
|
||||
|
Loading…
Reference in New Issue
Block a user