Coder Social home page Coder Social logo

zenmaxbuilder's Introduction

πŸ†‰πŸ…΄πŸ…½πŸ…ΌπŸ…°πŸ†‡πŸ…±πŸ†„πŸ…ΈπŸ…»πŸ…³πŸ…΄πŸ† πŸ“²

Codescore Codequality Codefactor Forks Stars
License: MIT Issues GitHub commit activity GitHub last commit

Table of Contents

Overview

ZenMaxBuilder (ZMB) is an Android Kernel Builder written in Bash, which can be launched on any compatible Linux system (feel free to Pull Request for Windows support). By default it uses AOSP-Clang, Eva-GCC, Proton-Clang or Lineage-GCC but you can use any Clang or GCC toolchain you like (with LLVM and binutils included).

Find all your compilations and working folders in one place, update and maintain your kernels faster. Full logs with the possibility to restart the build after error. Automatic creation of a flashable signed ZIP (with AK3 and AOSP Keys). Real time status feedback with build sending on any group or Telegram channel. And more. The perfect tool to compile on the fly and keep fresh and clean kernel paths.

Requirements

  • A compatible Linux system
  • The kernel source code of your device
  • A minimum of knowledge in kernel compilation
  • Patience

The installation of the missing dependencies will be offered by ZenMaxBuilder but you can also install them manually with your favorite package manager:

bash sed wget git curl zip tar expect make cmake automake autoconf llvm lld lldb clang gcc binutils bison perl gperf gawk flex bc python3 zstd openssl

The optional flashable zip signature with AOSP Keys requires java (JDK) which is not proposed to install by ZenMaxBuilder (openjdk recommended).

Usage

Clone and enter ZMB repository

git clone https://github.com/grm34/ZenMaxBuilder;
cd ZenMaxBuilder

Create a copy of settings.cfg to set your settings (optional)

cp etc/settings.cfg etc/user.cfg;
vi etc/user.cfg

Start ZMB and follow instructions

bash zmb --start

Options

Usage: bash zmb [OPTION] [ARGUMENT] (e.g. bash zmb --start)

Options
    -h, --help                      show this message and exit
    -s, --start                     start new kernel compilation
    -u, --update                    update script and toolchains
    -v, --version                   show toolchains versions
    -l, --list                      show list of your kernels
    -t, --tag            [v4.19]    show the latest Linux tag
    -m, --msg          [message]    send message on Telegram
    -f, --file            [file]    send file on Telegram
    -z, --zip     [Image.gz-dtb]    create flashable zip
    -p, --patch                     apply a patch to a kernel
    -r, --revert                    revert a patch to a kernel
    -d, --debug                     start compilation in debug mode

Working Structure

ZenMaxBuilder/
|
|---- builds/               # Flashable kernel zips
|     |---- DEVICE1/
|     |---- DEVICE2/
|
|---- logs/                 # Compilation build logs
|     |---- DEVICE1/
|     |---- DEVICE2/
|
|---- out/                  # Kernel working directories
|     |---- DEVICE1/
|     |---- DEVICE2/

Toolchains

ZMB uses prebuilts toolchains as default, in case of you already have compiled or downloaded some, just move it in toolchains folder and named it aosp-clang for example (refer settings.cfg).

  • AOSP-Clang Android Clang/LLVM Prebuilts by Google
  • Binutils Android GCC/LLVM Prebuilts by Google
  • Eva-GCC Bleeding Edge Bare Metal GCC Prebuilts by mvaisakh
  • Proton-Clang Android Clang/LLVM Prebuilts by kdrag0n
  • Lineage-GCC Android GCC Prebuilts by LineageOS
  • Proton-GCC Proton-Clang vs Eva-GCC
  • Host-Clang system host Clang/LLVM

Screenshots

Clic to expand

screenshot help telegram

Warning

ZMB is a tool to facilitate the compilation of an Android kernel, it does not modify the source, does not adds possible patchset and does not fixes specific drivers or compilation warnings.

The only change made is the addition of the selected toolchain compiler in the main Makefile, all others options from ZMB settings will be passed directly to make as command-line argument:

# AOSP-Clang / Proton-Clang
CROSS_COMPILE ?= aarch64-linux-gnu-
CC             = clang

# Eva-GCC
CROSS_COMPILE ?= aarch64-elf-
CC             = aarch64-elf-gcc

# Lineage-GCC
CROSS_COMPILE ?= aarch64-linux-android-
CC             = aarch64-linux-android-gcc

Reporting Issues

Found a problem? Want a new feature? Have a question? First of all see if your issue, question or idea has already been reported. If don't, just open a new clear and descriptive issue.

Contributing

If you want to contribute to ZenMaxBuilder project and make it better, your help is very welcome: Contributing Guidelines.

Help us Translate ZenMaxBuilder

language flag translator progress
English πŸ‡¬πŸ‡§ @grm34 100%
Spanish πŸ‡ͺπŸ‡Έ @grm34 100%
French πŸ‡«πŸ‡· @grm34 100%
German πŸ‡©πŸ‡ͺ @0n1cOn3 100%

License

MIT License

Copyright (c) 2021-2022 darkmaster @grm34 Neternels Team

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Credits

Buy me a beer ?

LTC: MHjiEKDw7SAtx6HzSeFEWTfEUiVUak2wUD
BTC: 356URzmeVn8AF8WxMtqipP2qQ3gwZQHdRi
BCH: 1MrG2pNek2v1nM2JShjW6gnxvS9sdxaytw
DOGE: DEMJp1QLze6n76h2f4KH6a55UBETuZHdMp
GTC: 0x349319b09D93EE3576F99622fDEE1388f42a82B0
ETH: 0x445bd5EF7f36CF09135F23dd9E85B8De9fab2199

zenmaxbuilder's People

Contributors

0n1con3 avatar grm34 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.