
This page will walk you through the new device maintainer onboarding proccess!
References to "us" or "we" mean Joey or Anierin in the #maintainers channel of the Evolution X Discord server. The usage of
codenameshould be replaced with your device's codename throughout this proccess.
Once you'll be accepted as an official maintainer, please open a ticket on our internal dashboard.
Specify the repositories you need created or access to under the Evolution X Devices GitHub organization
Once these repositories are created, and you have been granted access and pushed, please delete lineage.dependencies (if existing) and set up evolution.dependencies in each applicable repository for device source syncing via roomservice.
Additionally, provide a list of image names required to be flashed in order to boot Evolution X recovery (initial installation images) coming from the stock ROM of your device. (E.g boot, recovery etc)
You MAY NOT substitute Evolution X recovery with TWRP or any of its derivatives (OFOX/PBRP)
Example message using panther:
# Device:
Device name: Google Pixel 7
Device codename: panther
# Usernames:
GitHub Username: AnierinBliss
# Device Repositories:
1. Repository Name: device_google_panther
Repository Description: Roomservice & scripts support
2. Repository Name: device_google_pantah
Repository Description: Device tree for the Google Pixel 7 & 7 Pro
3. Repository Name: device_google_gs201
Repository Description: Board tree for Google Tensor G2 devices
4. Repository Name: device_google_gs101
Repository Description: Board tree for Google Tensor G1 devices
5. Repository Name: device_google_gs-common
Repository Description: Common interfaces & sepolicies for tensor-based Google Pixel devices
6. Repository Name: packages_apps_PixelParts
Repository Description: Parts application for tensor-based Google Pixel devices
# Initial installation images (required to boot Evolution X recovery when coming from the stock ROM):
1. boot
2. dtbo
3. vendor_kernel_boot
4. vendor_boot
Here is an example of how to setup the roomservice chain (mentionned in lunch guide.)
We'll use Panther again as an example.
device_google_panther :
[
{
"repository": "device_google_pantah",
"target_path": "device/google/pantah"
}
]
As previously said in lunch guide, we can see that Panther has only 1 dependencie, which is Pantah.
Pantah contains the dependencies for building Pantah and Panther.
device_google_pantah :
{
"repository": "device_google_gs201",
"target_path": "device/google/gs201"
},
{
"repository": "device/google/pantah-kernel",
"target_path": "device/google/pantah-kernel",
"remote": "aosp-pantah"
}
]
But we can see that Pantah itself has a dependencie, device_google_gs201, common to both devices.
device_google_gs201 :
[
{
"repository": "device_google_gs101",
"target_path": "device/google/gs101"
}
]
And again, this tree has an other dependencies:
device_google_gs101 :
[
{
"repository": "device_google_gs-common",
"target_path": "device/google/gs-common"
},
{
"repository": "packages_apps_PixelParts",
"target_path": "packages/apps/PixelParts"
}
]
Now you understand why this is called a roomservice chain. All the dependencies are +- linked.
If you're needing LFS access to push larger repositories to our git server, please raise another ticket.
You'll need to include your ssh-ed25519 key along with your github username.
If you need to create a key, you can do so with
ssh-keygen -t ed25519 -f ~/.ssh/evolution-x -C "Evolution X git" -N ""
Example Ticket:
Github Username:
Key:
You can then prepare your local SSH environment by adding the key to your config:
Host git.evolution-x.org
HostName git.evolution-x.org
User git
IdentityFile ~/.ssh/evolution-x
IdentitiesOnly yes
Then setup your repository with a file called .lfsconfig with the contents:
[lfs]
url = "https://git.evolution-x.org/Evolution-X-LFS/blobs.git/lfs"
pushurl = "ssh://[email protected]/Evolution-X-LFS/blobs.git"
Make sure after you do 3 things:
This part assumes you've read Setting up the environment
before.
Since you are now an official maintainer, your builds will be built on our internal build server and contain the required exports and signing keys.
Maintainers are responsible for building their own devices.
Builds can be launched from the internal dashboard and you'll have the options for:
user/userdebug/engyes/no/bothFrom then, it'll be sent to the queue for building, and build updates will be sent to the #jenkins channel in Discord.
Create an XDA forums thread using the XDA Thread Code Generator found on the internal dashboard.
Once your build(s) is complete, you'll have the ability to download the pre-release builds for testing, and then go through the release procedure.
It's been made pretty fail-safe. Just follow the steps.
