mirror of
https://github.com/Meetoul/android_device_Unihertz_Jelly2.git
synced 2025-12-23 15:18:06 -05:00
48
README.md
48
README.md
@@ -1,44 +1,48 @@
|
||||
Common device configuration for the Unihertz Atom L and XL
|
||||
Csommon device configuration for the Unihertz Jelly2
|
||||
=================================================
|
||||
This common device tree is intended for the usage in a LineageOS or similar building environment.
|
||||
|
||||
If you are looking for a special device tree for the usage in a TWRP or similar environment head over to https://github.com/ADeadTrousers/twrp_device_Unihertz_Atom_LXL.
|
||||
If you are looking for a special device tree for the usage in a TWRP or similar environment head over to https://github.com/Meetoul/twrp_device_Unihertz_Jelly2.
|
||||
|
||||
The Unihertz Atom L (codenamed simply _"Atom_L"_) and the Atom XL (codenamed simply _"Atom_XL"_) are two rugged small smartphones from Unihertz, released in July 2020. They are both almost identical except the Atom XL offers an integrated digital mobile radio (DMR).
|
||||
The Unihertz Jelly2 (codenamed simply "Jelly2") is a smallest modern Android smartphone from Unihertz, released in March 1, 2021.
|
||||
|
||||

|
||||
|
||||
| Basic | Spec Sheet |
|
||||
| -----------------------:|:------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| CPU | Octa-core |
|
||||
| Chipset | Mediatek Helio P60 |
|
||||
| GPU | Mali-G72 MP3 |
|
||||
| Memory | 6 GB RAM |
|
||||
| Shipped Android Version | 10 |
|
||||
| Storage | 128 GB |
|
||||
| Battery | Non-removable Li-Po 2000 mAh battery |
|
||||
| Display | 480x854 pixels, 3.0 inch |
|
||||
| Camera (Rear - Main) | 16MP |
|
||||
| Camera (Front) | 8MP |
|
||||
|
||||
# Dependencies
|
||||
|
||||
Additionally to this common device tree, you'll need one or both model device trees
|
||||
Additionally to this common device tree, you'll need model device tree
|
||||
|
||||
- [Atom L (model)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_L)
|
||||
- [Atom XL (model)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_XL)
|
||||
|
||||
and one or all of the four regional device trees
|
||||
|
||||
- [Atom L Region EEA (european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_L_EEA)
|
||||
- [Atom XL Region EEA (european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_XL_EEA)
|
||||
- [Atom L Region TEE (non-european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_L_TEE)
|
||||
- [Atom XL Region TEE (non-european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_XL_TEE)
|
||||
- [Jelly2 Region TEE (non-european union)](https://github.com/Meetoul/android_device_Unihertz_Jelly2_TEE)
|
||||
|
||||
## Releases
|
||||
|
||||
For the actual releases head on over to the device tree of the individual devices:
|
||||
- [Atom L Region EEA (european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_L_EEA/releases)
|
||||
- [Atom XL Region EEA (european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_XL_EEA/releases)
|
||||
- [Atom L Region TEE (non-european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_L_TEE/releases)
|
||||
- [Atom XL Region TEE (non-european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_XL_TEE/releases)
|
||||
|
||||
- [Jelly2 Region TEE (non-european union)](https://github.com/Meetoul/android_device_Unihertz_Jelly2_TEE/releases)
|
||||
|
||||
## Documentations
|
||||
|
||||
- [HOW-TO-BUILD.md](docs/HOW-TO-BUILD.md) - Building instructions for LineageOS 17.1.
|
||||
- [HOW-TO-INSTALL.md](docs/HOW-TO-INSTALL.md) - Installation instructions for the Atom L/XL.
|
||||
- [HOW-TO-UPDATE.md](docs/HOW-TO-UPDATE.md) - Update instructions for the Atom L/XL.
|
||||
- [HOW-TO-EXTRACT_FILES.md](docs/HOW-TO-EXTRACT_FILES.md) - Instructions to extract files directly from the Atom L/XL stock rom files.
|
||||
- [HOW-TO-INSTALL.md](docs/HOW-TO-INSTALL.md) - Installation instructions for the Jelly2.
|
||||
- [HOW-TO-UPDATE.md](docs/HOW-TO-UPDATE.md) - Update instructions for the Jelly.2
|
||||
- [HOW-TO-EXTRACT_FILES.md](docs/HOW-TO-EXTRACT_FILES.md) - Instructions to extract files directly from the Jelly2 stock rom files.
|
||||
- [HOW-TO-EXTRACT_SEPOLICY.md](docs/HOW-TO-EXTRACT_SEPOLICY.md) - A little guide to extract sepolicy rules from stock or phone.
|
||||
- [HOW-TO-FLASH-STOCK.md](docs/HOW-TO-FLASH-STOCK.md) - Instructions on how to use the SP Flash Tool for MTK based devices.
|
||||
- [HOW-TO-FLASH-SUPER.md](docs/HOW-TO-FLASH-SUPER.md) - Instructions on how to modify super.img and flashing it onto the device.
|
||||
|
||||
## Special Thanks To
|
||||
|
||||
- [PeterCxy from the XDA forum](https://forum.xda-developers.com/member.php?u=5351691) for helping me and providing the device tree for Atom L.
|
||||
- [The device tree for the Atom L](https://cgit.typeblog.net/android/device/unihertz/Atom_L/) which was a great step-by-step guide on how to setup my own device tree.
|
||||
- [ADeadTrousers](https://github.com/ADeadTrousers) - I used his [AtomL/XL device tree](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_LXL) as a base for this one. Phones hardware are almost identical, so device trees are almost identical as well.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
How to build LineageOS 17.1 for the Unihertz Atom L and XL
|
||||
How to build LineageOS 17.1 for the Unihertz Jelly2
|
||||
=================================================
|
||||
|
||||
This guide is focused on building the ROM under a Linux host environment.
|
||||
@@ -20,7 +20,7 @@ sudo apt-get install bc bison build-essential ccache curl flex g++-multilib gcc-
|
||||
For Ubuntu versions older than 16.04 (xenial), you’ll need
|
||||
|
||||
```bash
|
||||
sudo apt-get install libwxgtk2.8-dev
|
||||
sudo apt-get install libwxgtk2.8-dev
|
||||
```
|
||||
|
||||
For Ubuntu versions older than 20.04 (focal), you’ll also need
|
||||
@@ -43,14 +43,14 @@ Update your PATH variable for your environment
|
||||
```bash
|
||||
gedit ~/.profile
|
||||
```
|
||||
|
||||
|
||||
Add the following
|
||||
|
||||
|
||||
```bash
|
||||
# add Android SDK platform tools to path
|
||||
if [ -d "$HOME/platform-tools" ] ; then
|
||||
PATH="$HOME/platform-tools:$PATH"
|
||||
fi
|
||||
PATH="$HOME/platform-tools:$PATH"
|
||||
fi
|
||||
```
|
||||
|
||||
Then update your environment
|
||||
@@ -58,7 +58,7 @@ Then update your environment
|
||||
```bash
|
||||
source ~/.profile
|
||||
```
|
||||
|
||||
|
||||
### Install the repo command
|
||||
|
||||
Download the binary and make it executable
|
||||
@@ -68,20 +68,20 @@ mkdir -p ~/bin
|
||||
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
|
||||
chmod a+x ~/bin/repo
|
||||
```
|
||||
|
||||
|
||||
Update your PATH variable for your environment
|
||||
|
||||
```bash
|
||||
gedit ~/.profile
|
||||
```
|
||||
|
||||
|
||||
Add the following
|
||||
|
||||
|
||||
```bash
|
||||
# set PATH so it includes user's private bin if it exists
|
||||
if [ -d "$HOME/bin" ] ; then
|
||||
PATH="$HOME/bin:$PATH"
|
||||
fi
|
||||
PATH="$HOME/bin:$PATH"
|
||||
fi
|
||||
```
|
||||
|
||||
Then update your environment
|
||||
@@ -89,7 +89,7 @@ Then update your environment
|
||||
```bash
|
||||
source ~/.profile
|
||||
```
|
||||
|
||||
|
||||
### (optional) Install git-lfs for GAPPS support during build
|
||||
|
||||
If you want to include GAPPS in the build you need [git-lfs](https://git-lfs.github.com/) otherwise the apk's can't be downloaded.
|
||||
@@ -98,7 +98,7 @@ If you want to include GAPPS in the build you need [git-lfs](https://git-lfs.git
|
||||
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
|
||||
sudo apt-get install git-lfs
|
||||
```
|
||||
|
||||
|
||||
### Configure git
|
||||
|
||||
repo requires you to identify yourself to sync Android
|
||||
@@ -107,23 +107,23 @@ repo requires you to identify yourself to sync Android
|
||||
git config --global user.email "you@example.com"
|
||||
git config --global user.name "Your Name"
|
||||
```
|
||||
|
||||
|
||||
### (optional) Turn on caching to speed up build
|
||||
|
||||
Update your build environment
|
||||
|
||||
```bash
|
||||
gedit ~/.bashrc
|
||||
gedit ~/.bashrc
|
||||
```
|
||||
|
||||
Add the following
|
||||
|
||||
|
||||
```bash
|
||||
export USE_CCACHE=1
|
||||
export CCACHE_EXEC=/usr/bin/ccache
|
||||
export CCACHE_COMPRESS=1
|
||||
```
|
||||
|
||||
|
||||
### Initialize the LineageOS source repository
|
||||
|
||||
Create the project folder and download the source code
|
||||
@@ -133,35 +133,25 @@ mkdir -p ~/android/lineage
|
||||
cd ~/android/lineage
|
||||
repo init -u https://github.com/LineageOS/android.git -b lineage-17.1
|
||||
```
|
||||
|
||||
|
||||
Now let's add this very device repo to the local_manifest
|
||||
|
||||
```bash
|
||||
gedit cd ~/android/lineage/.repo/local_manifests/roomservice.xml
|
||||
```
|
||||
|
||||
|
||||
Add the following
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<manifest>
|
||||
<remove-project name="LineageOS/android_packages_apps_FMRadio"/>
|
||||
<project name="ADeadTrousers/android_device_Unihertz_Atom_LXL" path="device/Unihertz/Atom_LXL" remote="github" revision="master" />
|
||||
<!-- For the Atom L model add -->
|
||||
<project name="ADeadTrousers/android_device_Unihertz_Atom_L" path="device/Unihertz/Atom_L" remote="github" revision="master" />
|
||||
<!-- For the Atom XL model add -->
|
||||
<project name="ADeadTrousers/android_device_Unihertz_Atom_XL" path="device/Unihertz/Atom_XL" remote="github" revision="master" />
|
||||
<!-- For the Atom L region eea add -->
|
||||
<project name="ADeadTrousers/android_device_Unihertz_Atom_L_EEA" path="device/Unihertz/Atom_L_EEA" remote="github" revision="master" />
|
||||
<!-- For the Atom XL region eea add -->
|
||||
<project name="ADeadTrousers/android_device_Unihertz_Atom_XL_EEA" path="device/Unihertz/Atom_XL_EEA" remote="github" revision="master" />
|
||||
<!-- For the Atom L region tee add -->
|
||||
<project name="ADeadTrousers/android_device_Unihertz_Atom_L_TEE" path="device/Unihertz/Atom_L_TEE" remote="github" revision="master" />
|
||||
<!-- For the Atom XL region tee add -->
|
||||
<project name="ADeadTrousers/android_device_Unihertz_Atom_XL_TEE" path="device/Unihertz/Atom_XL_TEE" remote="github" revision="master" />
|
||||
|
||||
<project name="Meetoul/android_device_Unihertz_Jelly2" path="device/Unihertz/Jelly2" remote="github" revision="master" />
|
||||
<project name="Meetoul/android_device_Unihertz_Jelly2_TEE" path="device/Unihertz/Jelly2_TEE" remote="github" revision="master" />
|
||||
</manifest>
|
||||
```
|
||||
|
||||
|
||||
If you want to build with GAPPS included add the following to the manifest-tag
|
||||
|
||||
```xml
|
||||
@@ -181,7 +171,7 @@ If you want to build with Magisk included add the following to the manifest-tag
|
||||
```xml
|
||||
<project name="ADeadTrousers/android_vendor_magisk" path="vendor/magisk" remote="github" revision="master" />
|
||||
```
|
||||
|
||||
|
||||
To finish everything up sync the repo
|
||||
|
||||
```bash
|
||||
@@ -201,7 +191,7 @@ for d in ./*/ ; do (cd "$d" && git lfs pull); done
|
||||
If you don't want to include GAPPS at all or want to change the apps to be installed
|
||||
|
||||
```bash
|
||||
gedit ~/android/lineage/device/Unihertz/Atom_LXL/gapps_prop.mk
|
||||
gedit ~/android/lineage/device/Unihertz/Jelly2/gapps_prop.mk
|
||||
```
|
||||
|
||||
[Documentation of the possible settings](https://github.com/opengapps/aosp_build/blob/master/README.md)
|
||||
@@ -210,19 +200,13 @@ If you don't want to include GAPPS at all or want to change the apps to be insta
|
||||
|
||||
### Use imjtool (formerly known as imgtool) to extract from stock rom files
|
||||
|
||||
First follow [the instructions to extract and mount the stock rom files](HOW-TO-EXTRACT_FILES.md)
|
||||
First follow [the instructions to extract and mount the stock rom files](HOW-TO-EXTRACT_FILES.md)
|
||||
|
||||
Then extract all the files we need
|
||||
|
||||
```bash
|
||||
# For the Atom L EEA use
|
||||
~/android/lineage/device/Unihertz/Atom_L_EEA/extract-files.sh ~/unihertz/extracted
|
||||
# For the Atom XL EEA use
|
||||
~/android/lineage/device/Unihertz/Atom_XL_EEA/extract-files.sh ~/unihertz/extracted
|
||||
# For the Atom L TEE use
|
||||
~/android/lineage/device/Unihertz/Atom_L_TEE/extract-files.sh ~/unihertz/extracted
|
||||
# For the Atom XL TEE use
|
||||
~/android/lineage/device/Unihertz/Atom_XL_TEE/extract-files.sh ~/unihertz/extracted
|
||||
# For the Jelly2 TEE use
|
||||
~/android/lineage/device/Unihertz/Jelly2_TEE/extract-files.sh ~/unihertz/extracted
|
||||
```
|
||||
|
||||
### Use an allready rooted device
|
||||
@@ -230,47 +214,29 @@ Then extract all the files we need
|
||||
If you were able to root your device this is just a small step. Plug in your device and do the follwing
|
||||
|
||||
```bash
|
||||
# For the Atom L EEA use
|
||||
~/android/lineage/device/Unihertz/Atom_L_EEA/extract-files.sh
|
||||
# For the Atom XL EEA use
|
||||
~/android/lineage/device/Unihertz/Atom_XL_EEA/extract-files.sh
|
||||
# For the Atom L TEE use
|
||||
~/android/lineage/device/Unihertz/Atom_L_TEE/extract-files.sh
|
||||
# For the Atom XL TEE use
|
||||
~/android/lineage/device/Unihertz/Atom_XL_TEE/extract-files.sh
|
||||
# For the Jelly2 TEE use
|
||||
~/android/lineage/device/Unihertz/Jelly2_TEE/extract-files.sh
|
||||
```
|
||||
|
||||
|
||||
## Building the rom
|
||||
|
||||
Prepare the build
|
||||
Prepare the build
|
||||
|
||||
```bash
|
||||
cd ~/android/lineage
|
||||
source build/envsetup.sh
|
||||
# For the Atom L EEA use
|
||||
breakfast Atom_L_EEA
|
||||
# For the Atom XL EEA use
|
||||
breakfast Atom_XL_EEA
|
||||
# For the Atom L TEE use
|
||||
breakfast Atom_L_TEE
|
||||
# For the Atom XL TEE use
|
||||
breakfast Atom_XL_TEE
|
||||
# For the Jelly2 TEE use
|
||||
breakfast Jelly2_TEE
|
||||
```
|
||||
|
||||
|
||||
Do the actual build
|
||||
|
||||
|
||||
```bash
|
||||
cd ~/android/lineage
|
||||
ccache -M 50G
|
||||
croot
|
||||
# For the Atom L EEA use
|
||||
brunch Atom_L_EEA
|
||||
# For the Atom XL EEA use
|
||||
brunch Atom_XL_EEA
|
||||
# For the Atom L TEE use
|
||||
brunch Atom_L_TEE
|
||||
# For the Atom XL TEE use
|
||||
brunch Atom_XL_TEE
|
||||
# For the Jelly2 TEE use
|
||||
brunch Jelly2_TEE
|
||||
```
|
||||
|
||||
## Updating the sorces (at a later time)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
How to extract informations from the Unihertz Atom L and XL
|
||||
How to extract informations from the Unihertz Jelly2
|
||||
=================================================
|
||||
|
||||
## Installing needed utilities
|
||||
@@ -13,14 +13,8 @@ Make sure unpack_bootimg is build
|
||||
cd ~/android/lineage
|
||||
source build/envsetup.sh
|
||||
|
||||
# For the Atom L EEA use
|
||||
breakfast Atom_L_EEA
|
||||
# For the atom XL EEA use
|
||||
breakfast Atom_XL_EEA
|
||||
# For the Atom L TEE use
|
||||
breakfast Atom_L_TEE
|
||||
# For the atom XL TEE use
|
||||
breakfast Atom_XL_TEE
|
||||
# For the Jelly2 TEE use
|
||||
breakfast Jelly2_TEE
|
||||
|
||||
make unpack_bootimg
|
||||
```
|
||||
@@ -42,7 +36,7 @@ mkdir -p ~/bin
|
||||
wget http://newandroidbook.com/tools/imjtool.tgz
|
||||
tar -xzf imjtool.tgz -C ~/bin
|
||||
```
|
||||
|
||||
|
||||
## How-To to extract boot.img and recovery.img
|
||||
|
||||
Use unpack_bootimg extract all required infos from boot.img and recovery.img of the stock rom
|
||||
@@ -66,7 +60,7 @@ rm -rf extracted/
|
||||
imjtool super.img extract
|
||||
imjtool extracted/image.img extract
|
||||
```
|
||||
|
||||
|
||||
Next we need to mount them into the filesystem
|
||||
|
||||
```bash
|
||||
@@ -80,9 +74,9 @@ sudo mount -o loop product.img system/product
|
||||
Now you can browse your phones filesystem and extract everything you need
|
||||
|
||||
To cleanup just unmout the images
|
||||
|
||||
|
||||
```bash
|
||||
sudo umount ~/unihertz/extracted/system/product
|
||||
sudo umount ~/unihertz/extracted/system/vendor
|
||||
sudo umount ~/unihertz/extracted/system/product
|
||||
sudo umount ~/unihertz/extracted/system/vendo
|
||||
sudo umount ~/unihertz/extracted/system
|
||||
```
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
How to extract sepolicies from the Unihertz Atom L and XL
|
||||
How to extract sepolicies from the Unihertz Jelly2
|
||||
=================================================
|
||||
|
||||
### Why would you even do that?
|
||||
|
||||
At first a little bit of warning:
|
||||
At first a little bit of warning:
|
||||
I'm not sure if this is the right approach to get everything selinux-wise in order but at least at the time of me writing these lines it gave me a pretty good look into the depths of the system and how everything interconnects.
|
||||
|
||||
### Where do I get the stock files from?
|
||||
### Where do I get the stock files from?
|
||||
|
||||
First follow [the instructions to extract and mount the stock rom files](HOW-TO-EXTRACT_FILES.md).
|
||||
The sepolicies are stored in two folders inside the extracted strock rom: `system/etc/sepolicy` and `system/vendor/etc/sepolicies`.
|
||||
|
||||
### These files look okay to me. Why can't I directly use them?
|
||||
|
||||
The files are in a combined and somewhat precompiled state.
|
||||
The files are in a combined and somewhat precompiled state.
|
||||
Therefore one is forced to extract the parts needed and then convert it into a format that it can be reintegrated as a type enforcement (.te-file) into another build.
|
||||
|
||||
### But... But these files are HUGE! How do I make sure that I find everything that I need?
|
||||
|
||||
That's why I created a little python script to help with this tedious task.
|
||||
That's why I created a little python script to help with this tedious task.
|
||||
You can find `extract_sepolicy.py`, `extract_sepolicy_plat.py` and `extract_sepolicy_vend.py` in my lineage repository in the folder `tools`.
|
||||
|
||||
### At first you had my curiosity. Now you have my attention. What else do I need?
|
||||
@@ -44,8 +44,8 @@ Now you are good to go.
|
||||
|
||||
### But how ... ?
|
||||
|
||||
Glad you asked.
|
||||
You need to find out what parts of the stock rom policies your device really needs.
|
||||
Glad you asked.
|
||||
You need to find out what parts of the stock rom policies your device really needs.
|
||||
This is best achieved by running `adb -d logcat > logcat.txt` while you use the phone or reproducing some errors that should not happen.
|
||||
Next look out for lines containing `avc: denied` in the logcat file.
|
||||
In those lines you will also find a `scontext` which is the thing we are looking for.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
How to modify super.img and then flash it onto the device.
|
||||
=================================================
|
||||
|
||||
For some reason I don't know of yet the install script won't be able to change the partition size inside `super.img`.
|
||||
For some reason I don't know of yet the install script won't be able to change the partition size inside `super.img`.
|
||||
When this happens the recovery will only schon an error 7 mentioning an "assert failure" with `dynamic_partitions_op_list`.
|
||||
To overcome this problem you need to change the partiton layout manually on your computer and then flash the whole `super.img` back onto the device.
|
||||
|
||||
@@ -25,14 +25,8 @@ Make sure lpmake is build
|
||||
cd ~/android/lineage
|
||||
source build/envsetup.sh
|
||||
|
||||
# For the Atom L EEA use
|
||||
breakfast Atom_L_EEA
|
||||
# For the atom XL EEA use
|
||||
breakfast Atom_XL_EEA
|
||||
# For the Atom L TEE use
|
||||
breakfast Atom_L_TEE
|
||||
# For the atom XL TEE use
|
||||
breakfast Atom_XL_TEE
|
||||
# For the Jelly2 TEE use
|
||||
breakfast Jelly2_TEE
|
||||
|
||||
make lpmake
|
||||
```
|
||||
@@ -61,14 +55,14 @@ Update your PATH variable for your environment
|
||||
```bash
|
||||
gedit ~/.profile
|
||||
```
|
||||
|
||||
|
||||
Add the following
|
||||
|
||||
|
||||
```bash
|
||||
# set PATH so it includes user's private bin if it exists
|
||||
if [ -d "$HOME/bin" ] ; then
|
||||
PATH="$HOME/bin:$PATH"
|
||||
fi
|
||||
PATH="$HOME/bin:$PATH"
|
||||
fi
|
||||
```
|
||||
|
||||
Then update your environment
|
||||
@@ -80,17 +74,14 @@ source ~/.profile
|
||||
## Extracting image files from stock rom files
|
||||
|
||||
Follow [the instructions to extract the stock rom files](HOW-TO-EXTRACT_FILES.md) to the point where you get `system.img`, `vendor.img` and `product.img`.
|
||||
For this guide we only need `vendor.img` because the other two files are provided from the LineageOS rom.
|
||||
For this guide we only need `vendor.img` because the other two files are provided from the LineageOS rom.
|
||||
Create the folder `~/super` and copy `vendor.img` into it.
|
||||
|
||||
## Extracting image files from LineageOS rom files
|
||||
|
||||
- [Atom L Region EEA (european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_L_EEA/releases)
|
||||
- [Atom XL Region EEA (european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_XL_EEA/releases)
|
||||
- [Atom L Region TEE (non-european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_L_TEE/releases)
|
||||
- [Atom XL Region TEE (non-european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_XL_TEE/releases)
|
||||
- [Jelly2 Region TEE (non-european union)](https://github.com/Meetoul/android_device_Unihertz_Jelly2_TEE/releases)
|
||||
|
||||
Download `lineage-17.1-XXX-UNOFFICIAL-YYY-signed.zip` from the latest release page of your device.
|
||||
Download `lineage-17.1-XXX-UNOFFICIAL-YYY.zip` from the latest release page of your device.
|
||||
Extract the files from the zip archive into `~/super`.
|
||||
|
||||
Then we need to extract the brotli compressed files
|
||||
@@ -122,7 +113,7 @@ stat -c '%n %s' system.img
|
||||
stat -c '%n %s' product.img
|
||||
```
|
||||
|
||||
Alternativly you could also use the filesizes from the zip archive in `dynamic_partitions_op_list`.
|
||||
Alternativly you could also use the filesizes from the zip archive in `dynamic_partitions_op_list`.
|
||||
Theses sizes are a bit bigger so you are able to add additional components like Gapps or Magisk later on.
|
||||
|
||||
With these number we are now able to create the `super.img`
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
How to install LineageOS 17.1 for the Unihertz Atom L and XL
|
||||
How to install LineageOS 17.1 for the Unihertz Jelly2
|
||||
=================================================
|
||||
|
||||
## Getting adb and fastboot
|
||||
@@ -25,14 +25,14 @@ Update your PATH variable for your environment
|
||||
```bash
|
||||
gedit ~/.profile
|
||||
```
|
||||
|
||||
|
||||
Add the following
|
||||
|
||||
|
||||
```bash
|
||||
# add Android SDK platform tools to path
|
||||
if [ -d "$HOME/platform-tools" ] ; then
|
||||
PATH="$HOME/platform-tools:$PATH"
|
||||
fi
|
||||
PATH="$HOME/platform-tools:$PATH"
|
||||
fi
|
||||
```
|
||||
|
||||
Then update your environment
|
||||
@@ -43,13 +43,13 @@ source ~/.profile
|
||||
|
||||
### Windows
|
||||
|
||||
Download [the latest version of adb and fastboot](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) to a directory of your choice and extract the archive.
|
||||
Download [the latest version of adb and fastboot](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) to a directory of your choice and extract the archive.
|
||||
|
||||
Note: I've had reports that under Windows adb/fastboot might not recognize the phone while in TWRP. For now I don't know whats causing this. So if that happends to you try using linux instead.
|
||||
|
||||
## Unlocking
|
||||
|
||||
To be able to install anything on the Unihertz Atom L or XL we first need to unlock the bootloader.
|
||||
To be able to install anything on the Unihertz Jelly2 we first need to unlock the bootloader.
|
||||
|
||||
1. Boot your device into the official OS.
|
||||
2. Go to `Settings > About phone`, tap the "build number" several times to enable developer settings.
|
||||
@@ -72,10 +72,7 @@ To get LineageOS to boot proberly we also need to disable AVB. Otherwise the boo
|
||||
|
||||
## Installing TWRP recovery
|
||||
|
||||
- [Atom L Region EEA (european union)](https://github.com/ADeadTrousers/twrp_device_Unihertz_Atom_L_EEA/releases)
|
||||
- [Atom XL Region EEA (european union)](https://github.com/ADeadTrousers/twrp_device_Unihertz_Atom_XL_EEA/releases)
|
||||
- [Atom L Region TEE (non-european union)](https://github.com/ADeadTrousers/twrp_device_Unihertz_Atom_L_TEE/releases)
|
||||
- [Atom XL Region TEE (non-european union)](https://github.com/ADeadTrousers/twrp_device_Unihertz_Atom_XL_TEE/releases)
|
||||
- [Jelly2 Region TEE (non-european union)](https://github.com/Meetoul/twrp_device_Unihertz_Jelly2_TEE/releases)
|
||||
|
||||
1. Download `recovery.img` from the latest release page of your device.
|
||||
2. Connect your phone to your PC and open a terminal or a command line window.
|
||||
@@ -86,16 +83,13 @@ To get LineageOS to boot proberly we also need to disable AVB. Otherwise the boo
|
||||
|
||||
## Installing LineageOS ROM
|
||||
|
||||
- [Atom L Region EEA (european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_L_EEA/releases)
|
||||
- [Atom XL Region EEA (european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_XL_EEA/releases)
|
||||
- [Atom L Region TEE (non-european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_L_TEE/releases)
|
||||
- [Atom XL Region TEE (non-european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_XL_TEE/releases)
|
||||
- [Jelly2 Region TEE (non-european union)](https://github.com/Meetoul/android_device_Unihertz_Jelly2_TEE/releases)
|
||||
|
||||
1. Download `lineage-17.1-XXX-UNOFFICIAL-YYY-signed.zip` from the latest release page of your device.
|
||||
1. Download `lineage-17.1-XXX-UNOFFICIAL-YYY.zip` from the latest release page of your device.
|
||||
2. Connect your phone to your PC and open a terminal or a command line window.
|
||||
3. Run `adb reboot recovery` on your PC or simply hold volume up while turning power on to boot your device into the recovery.
|
||||
4. In TWRP select `Wipe > Advanced Wipe`.
|
||||
5. Tick `Dalvik / ART Cache`, `Cache`, `Data`, `Internal Storage`.
|
||||
5. Tick `Dalvik / ART Cache`, `Cache`, `Data`, `Internal Storage`.
|
||||
6. Swipe the slider on the bottom to the right to confirm. (**THIS WILL WIPE ALL DATA!**)
|
||||
|
||||
### Using sideload method
|
||||
@@ -117,25 +111,3 @@ To get LineageOS to boot proberly we also need to disable AVB. Otherwise the boo
|
||||
|
||||
1. (Optional) At this point, you can then install the latest Magisk and/or OpenGAPPS Nano at your will. Note that the size of the system partition might only be enough for the "nano" variant of OpenGAPPS. If installing Magisk / OpenGAPPS fails, you can try rebooting into recovery again in advanced menus, then try installing them again.
|
||||
2. Select `Reboot System` to reboot into LineageOS and enjoy. Note that Magisk might cause your device to boot loop once or twice but it will eventually boot.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Partitions cannot be resized
|
||||
|
||||
If you get an error 7 mentioning `assert failed: update_dynamic_partitions(package_extract_file("dynamic_partitions_op_list"))` you need to do the following:
|
||||
|
||||
- [Atom L Region EEA (european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_L_EEA/releases/download/20210226-alpha/super.img-eea.7z)
|
||||
- [Atom XL Region EEA (european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_XL_EEA/releases/download/20201219-alpha/super.img-seea.7z)
|
||||
- [Atom L Region TEE (non-european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_L_TEE/releases/download/20210415-alpha/super.img-tee.7z)
|
||||
- [Atom XL Region TEE (non-european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_XL_TEE/releases/download/20210415-alpha/super.img-stee.7z)
|
||||
|
||||
1. Download `super.img-YYY.7z` from the release page of your device which corresponds with the latest stock rom release.
|
||||
2. Extract the already resized copy of `super.img` from the downloaded archive.
|
||||
5. Run `adb push super.img /external_sd` on your PC.
|
||||
6. In TWRP select `Install`.
|
||||
7. Use `Select Storage` to switch to your SD card.
|
||||
8. Use `Install Image` to switch to image installation mode.
|
||||
9. Select `super.img` from the list.
|
||||
10. Select `Super (Product, Vendor, System)` partition.
|
||||
11. Swipe the slider on the bottom to the right to confirm.
|
||||
12. Continue with **Installing LineageOS ROM**
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
How to update LineageOS 17.1 for the Unihertz Atom L and XL
|
||||
How to update LineageOS 17.1 for the Unihertz Jelly2
|
||||
=================================================
|
||||
|
||||
Every piece of software should allways kept up-to-date. Therefore even this ROM get updates from time to time and you should allways apply these to your device.
|
||||
|
||||
## (optional) Updating TWRP recovery
|
||||
|
||||
- [Atom L Region EEA (european union)](https://github.com/ADeadTrousers/twrp_device_Unihertz_Atom_L_EEA/releases)
|
||||
- [Atom XL Region EEA (european union)](https://github.com/ADeadTrousers/twrp_device_Unihertz_Atom_XL_EEA/releases)
|
||||
- [Atom L Region TEE (non-european union)](https://github.com/ADeadTrousers/twrp_device_Unihertz_Atom_L_TEE/releases)
|
||||
- [Atom XL Region TEE (non-european union)](https://github.com/ADeadTrousers/twrp_device_Unihertz_Atom_XL_TEE/releases)
|
||||
- [Jelly2 Region TEE (non-european union)](https://github.com/Meetoul/twrp_device_Unihertz_Jelly2_TEE/releases)
|
||||
|
||||
1. Download `recovery.img` from the latest release page of your device.
|
||||
2. Connect your phone to your PC and open a terminal or a command line window.
|
||||
@@ -24,22 +21,19 @@ Every piece of software should allways kept up-to-date. Therefore even this ROM
|
||||
|
||||
## Updating LineageOS ROM
|
||||
|
||||
- [Atom L Region EEA (european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_L_EEA/releases)
|
||||
- [Atom XL Region EEA (european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_XL_EEA/releases)
|
||||
- [Atom L Region TEE (non-european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_L_TEE/releases)
|
||||
- [Atom XL Region TEE (non-european union)](https://github.com/ADeadTrousers/android_device_Unihertz_Atom_XL_TEE/releases)
|
||||
- [Jelly2 Region TEE (non-european union)](https://github.com/Meetoul/android_device_Unihertz_Jelly2_TEE/releases)
|
||||
|
||||
1. Download `lineage-17.1-XXX-UNOFFICIAL-YYY-signed.zip` from the latest release page of your device.
|
||||
1. Download `lineage-17.1-XXX-UNOFFICIAL-YYY.zip` from the latest release page of your device.
|
||||
2. Connect your phone to your PC and open a terminal or a command line window.
|
||||
3. Run `adb reboot recovery` on your PC or simply hold volume up while turning power on to boot your device into the recovery.
|
||||
4. (Optional) In TWRP select `Wipe > Advanced Wipe`.
|
||||
5. (Optional) Tick `Dalvik / ART Cache`, `Cache`, `Data`, `Internal Storage`.
|
||||
5. (Optional) Tick `Dalvik / ART Cache`, `Cache`, `Data`, `Internal Storage`.
|
||||
6. (Optional) Swipe the slider on the bottom to the right to confirm. (**THIS WILL WIPE ALL DATA!**)
|
||||
7. Go back to the home screen and select `Advanced > ADB Sideload`.
|
||||
8. Swipe the slider on the bottom to the right to confirm.
|
||||
9. Run `adb sideload lineage-17.1-XXX-UNOFFICIAL-YYY.zip` from your PC.
|
||||
10. Wait for the process to finish. The recovery might prompt something about verification failure, just ignore it and continue anyway.
|
||||
11. (Optional) You need to flash all the additional modules that you previously installed.
|
||||
11. (Optional) You need to flash all the additional modules that you previously installed.
|
||||
12. Select `Reboot System` to reboot into LineageOS and enjoy. Note that Magisk might cause your device to boot loop once or two but it will eventually boot.
|
||||
|
||||
Steps 4 to 6 are optional but if you encounter any errors later on you are on your own.
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Documentations for the Unihertz Atom L and XL
|
||||
Documentations for the Unihertz Jelly2
|
||||
=================================================
|
||||
|
||||
- [HOW-TO-BUILD.md](HOW-TO-BUILD.md) - Building instructions for LineageOS 17.1.
|
||||
- [HOW-TO-INSTALL.md](HOW-TO-INSTALL.md) - Installation instructions for the Atom L/XL.
|
||||
- [HOW-TO-UPDATE.md](HOW-TO-UPDATE.md) - Update instructions for the Atom L/XL.
|
||||
- [HOW-TO-EXTRACT_FILES.md](HOW-TO-EXTRACT_FILES.md) - Instructions to extract files directly from the Atom L/XL stock rom files.
|
||||
- [HOW-TO-INSTALL.md](HOW-TO-INSTALL.md) - Installation instructions for the Jelly2.
|
||||
- [HOW-TO-UPDATE.md](HOW-TO-UPDATE.md) - Update instructions for the Jelly2.
|
||||
- [HOW-TO-EXTRACT_FILES.md](HOW-TO-EXTRACT_FILES.md) - Instructions to extract files directly from the Jelly2 stock rom files.
|
||||
- [HOW-TO-EXTRACT_SEPOLICY.md](HOW-TO-EXTRACT_SEPOLICY.md) - A little guide to extract sepolicy rules from stock or phone.
|
||||
- [HOW-TO-FLASH-STOCK.md](HOW-TO-FLASH-STOCK.md) - Instructions on how to use the SP Flash Tool for MTK based devices.
|
||||
- [HOW-TO-FLASH-SUPER.md](HOW-TO-FLASH-SUPER.md) - Instructions on how to modify super.img and flashing it onto the device.
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 37 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 41 KiB |
BIN
docs/images/jelly2.png
Normal file
BIN
docs/images/jelly2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 416 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 66 KiB |
Reference in New Issue
Block a user