Jak vytvořit MediaTek Android Kernal ze zdroje



Vyzkoušejte Náš Nástroj Pro Odstranění Problémů

Mnoho uživatelů Androidu si užívá instalaci přizpůsobených jader, která mohou nabídnout řadu vylepšení zvyšujících výkon a výdrž baterie. Pokud ale nemůžete najít jádro, které se vám líbí, nebo není pro vaše zařízení k dispozici žádné, musíte si jednoduše vytvořit vlastní. Tato příručka se zaměří na to, jak vytvořit jádro ze zdroje pro zařízení Mediatek.



Upozorňujeme, že tato příručka není určena pro nováčky, je určena pro lidi, kteří mají znalosti o přizpůsobení ROM ROM pro Android, pracují v terminálech Linux a mají celkově trochu pracovních znalostí o tom, co děláme.



Požadavky:

  1. Operační systém Linux
  2. Některé základní znalosti jazyka C a jak pracovat s Makefiles
  3. Android NDK

Nejprve si budete muset stáhnout následující balíčky pro Linux:



  • Krajta
  • GNU Make
  • JDK
  • Jít

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev: i386 x11proto-core-dev libx11-dev: i386 libreadline6-dev: i386 libgl1-mesa-glx: i386 libgl1-mesa-dev g ++ - multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev: i386 git-core lzop ccache gnupg flex bison gperf build-essential zip curl zlib1g-dev zlib1g-dev: i386 libc6-dev lib32ncurses5 lib32z1 lib32z1 x11proto-core-dev libx11-dev: i386 libreadline6-dev: i386 lib32z-dev libgl1-mesa-glx: i386 libgl1-mesa-dev g ++ - multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc readline-common libreadline6-dev libreadline6-dev -gplv2-dev libncurses5-dev lib32readline5 lib32readline6 libreadline-dev libreadline6-dev: i386 libreadline6: i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev libsdl1.2-dev libesd0-dev squashfs-tools pc 8-dev python gcc g ++ cpp gcc-4.8 g ++ - 4.8 && sudo ln -s / usr / lib / i386-linux-gnu / mesa / li bGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

Nyní přejděte na etc / udev / rules.d / 51-android.rules:

# adb protokol o vášni (Nexus One)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e12 ″, MODE = ”0600 ″, VLASTNÍK =” ”
# fastboot protokol o vášni (Nexus One)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”0bb4 ″, ATTR {idProduct} ==” 0fff ”, MODE =” 0600 ″, VLASTNÍK = ””
# protokol adb na crespo / crespo4g (Nexus S)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e22 ″, MODE = ”0600 ″, VLASTNÍK =” ”
# protokol rychlého spuštění na crespo / crespo4g (Nexus S)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e20 ″, MODE = ”0600 ″, VLASTNÍK =” ”
# protokol adb na stingray / wingray (Xoom)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”22b8 ″, ATTR {idProduct} ==” 70a9 ″, MODE = ”0600 ″, VLASTNÍK =” ”
# protokol rychlého spuštění na stingray / wingray (Xoom)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 708c ”, MODE =” 0600 ″, VLASTNÍK = ””
# protokol adb na maguro / toro (Galaxy Nexus)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”04e8 ″, ATTR {idProduct} ==” 6860 ″, MODE = ”0600 ″, VLASTNÍK =” ”
# protokol rychlého spuštění na maguro / toro (Galaxy Nexus)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e30 ″, MODE = ”0600 ″, VLASTNÍK =” ”
# protokol adb na pandě (PandaBoard)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”0451 ″, ATTR {idProduct} ==” d101 ″, MODE = ”0600 ″, VLASTNÍK =” ”
# protokol adb na pandě (PandaBoard ES)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” d002 ″, MODE = ”0600 ″, VLASTNÍK =” ”
# fastboot protokol na pandě (PandaBoard)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”0451 ″, ATTR {idProduct} ==” d022 ″, MODE = ”0600 ″, VLASTNÍK =” ”
# usbboot protokol na pandě (PandaBoard)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”0451 ″, ATTR {idProduct} ==” d00f ”, MODE =” 0600 ″, VLASTNÍK = ””
# usbboot protokol na pandě (PandaBoard ES)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”0451 ″, ATTR {idProduct} ==” d010 ″, MODE = ”0600 ″, VLASTNÍK =” ”
# protokol adb na seskupení / tilapii (Nexus 7)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e42 ″, MODE = ”0600 ″, VLASTNÍK =” ”
# protokol rychlého spuštění na seskupovači / tilapii (Nexus 7)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4e40 ″, MODE = ”0600 ″, VLASTNÍK =” ”
# adb protokol o mantě (Nexus 10)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4ee2 ″, MODE = ”0600 ″, VLASTNÍK =” ”
# fastboot protokol na manta (Nexus 10)
SUBSYSTEM == ”usb”, ATTR {idVendor} == ”18d1 ″, ATTR {idProduct} ==” 4ee0 ″, MODE = ”0600 ″, VLASTNÍK =” ”



A v bash.rc:

exportovat USE_CCACHE = 1
Nyní konečně:

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Nyní jsme tedy připraveni nastavit prostředí sestavení. Do terminálu zadejte:

export TARGET_BUILD_VARIANT = uživatel TARGET_PRODUCT = název zařízení MTK_ROOT_CUSTOM = .. / mediatek / custom / TARGET_KERNEL_V
Tady budou tyto příkazy dělat:

BUILD_VARIANT: určuje, pro co se jádro bude stavět.
TARGET_PRODUCT / TARGET_KERNEL_PRODUCT: řekne Linuxu, které konkrétní soubory zařízení mají použít.
MTK_ROOT_CUSTOM: určuje adresář složky mediatek / custom. pamatujte, že tento mide je ve stejném adresáři jako zdroj jádra.
PATH: nastaví spustitelné soubory vašeho řetězce nástrojů podle vaší cesty.
CROSS_COMPILE: Křížový kompilátor je kompilátor schopný vytvořit spustitelný kód pro jinou platformu, než na které běží kompilátor. Řetězec nástrojů tuto funkci usnadňuje
ARCH = arm, ARM je rodina architektur instrukční sady pro počítačové procesory založené na architektuře RISC (redukovaná instrukční sada) vyvinutá britskou společností ARM Holdings. ARM se také používá v systému Android.

Když tedy do terminálu napíšeme „export ARCH = arm“, řekneme Linuxu, že stavíme na architektuře ARM.

Nyní jsme tedy připraveni začít konfigurovat jádro. Musíte být velmi opatrní, protože jádro je v zásadě ovladač vašeho telefonu. Postupujte tedy opatrně.


Nejpravděpodobnější základní konfiguraci najdete v platformě kernel_source / mediatek / config / devicename / autoconfig / kconfig /.
Můžeme použít tuto základní konfiguraci a sestavit ji s různými požadavky, například povolená nebo zakázaná oprávnění SELinux. Vždy jste mohli jednoduše postavit základní konfiguraci od nuly, ale opravdu to nedoporučuji.

Pojďme tedy napsat do terminálu Linux:

cd kernel_source
cp mediatek / config / devicename / autoconfig / kconfig / platforma .config
vytvořit menuconfig

Tím se vytvoří grafické rozhraní, které vám umožní přidávat funkce do jádra. Můžete například vyladit plán I / O, guvernéry CPU, frekvenci GPU atd.
Jakmile vyladíte požadovaná nastavení, jste připraveni kompilovat jádro. Zadejte tedy do terminálu Linux:
udělat zImage

A mělo by vrátit něco jako:

oblouk / paže / bota / zImage Ready

3 minuty čtení