Kaynaktan MediaTek Android Kernal nasıl oluşturulur

Birçok Android kullanıcısı, bir dizi performans ve pil ömrünü artıran tweaks sunan özelleştirilmiş çekirdeklerin kurulumundan keyif alır. Ancak, beğendiğiniz bir çekirdeği bulamıyorsanız veya cihazınız için hiçbiri kullanamıyorsanız, bazen kendi başınıza inşa etmeniz gerekir. Bu kılavuz, Mediatek cihazlarının kaynağından bir çekirdek oluşturmaya odaklanacaktır.

Bu kılavuz yeni başlayanlar için değil, Android ROM'larını özelleştirme, Linux terminallerinde çalışanlar ve yaptığımız şey hakkında genel olarak biraz bilgi birikimine sahip insanlar için tasarlanmıştır.

Gereksinimler:

  1. Linux işletim sistemi
  2. Bazı temel C bilgisi ve Makefiles ile nasıl çalışılır
  3. Android NDK

Başlamak için Linux için aşağıdaki paketleri yüklemeniz gerekecek:

  • piton
  • GNU Make
  • JDK
  • Git

sudo apt-get install git gnupg esnek bison gperf yapı-temel 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-işaretleme libxml2-utils xsltproc zlib1g-dev: i386 git-core lzop ccache gnupg esnek bison gperf yapı-temel zip curl zlib1g-dev zlib1g-dev: i386 libc6-dev lib32ncurses5 lib32z1 lib32bz2-1.0 lib32ncurses5-dev x11proto-core-dev libx11-dev: i386 libreadline6-dev: i386 lib32z-dev libgl1-mesa-glx: i386 libgl1-mesa-dev g ++ - çok baytlı mingw32 için python işaretleme libxml2-utils xsltproc readline-genel libreadline6-dev libreadline6 lib32readline -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 araçları pngcrush zaman çizelgesi libwxgtk2. 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

Şimdi etc / udev / rules.d / 51-android.rules adresine gidin:

Tutku üzerinde # adb protokolü (Nexus One)
SUBSYSTEM == usb, ATTR {idVendor} == 18d1 ″, ATTR {idÜrün} == 4e12 ″, MODE = 0600 ″, OWNER =
Tutku üzerinde # fastboot protokolü (Nexus One)
SUBSYSTEM == usb, ATTR {idVendor} == 0bb4 ″, ATTR {idÜrün} == 0fff, MODE = 0600 ″, OWNER =
crespo / crespo4g adresinde # adb protokolü (Nexus S)
SUBSYSTEM == usb, ATTR {idVendor} == 18d1 ″, ATTR {idÜrün} == 4e22 ″, MODE = 0600 ″, OWNER =
crespo / crespo4g üzerinde # fastboot protokolü (Nexus S)
SUBSYSTEM == usb, ATTR {idVendor} == 18d1 ″, ATTR {idÜrün} == 4e20 ″, MODE = 0600 ″, OWNER =
Stingray / wingray'de # adb protokolü (Xoom)
SUBSYSTEM == usb, ATTR {idVendor} == 22b8 ″, ATTR {idÜrün} == 70a9 ″, MODE = 0600 ″, OWNER =
Stingray / wingray'de # fastboot protokolü (Xoom)
SUBSYSTEM == usb, ATTR {idVendor} == 18d1 ″, ATTR {idÜrün} == 708c, MODE = 0600 ″, OWNER =
maguro / toro'daki # adb protokolü (Galaxy Nexus)
SUBSYSTEM == usb, ATTR {idVendor} == 04e8 ″, ATTR {idÜrün} == 6860 ″, MODE = 0600 ″, OWNER =
maguro / toro'da # fastboot protokolü (Galaxy Nexus)
SUBSYSTEM == usb, ATTR {idVendor} == 18d1 ″, ATTR {idÜrün} == 4e30 ″, MODE = 0600 ″, OWNER =
pandadaki # adb protokolü (PandaBoard)
SUBSYSTEM == usb, ATTR {idVendor} == 0451 ″, ATTR {idÜrün} == d101 ″, MODE = 0600 ″, OWNER =
panda # adb protokolü (PandaBoard ES)
SUBSYSTEM == usb, ATTR {idVendor} == 18d1 ″, ATTR {idÜrün} == d002 ″, MODE = 0600 ″, OWNER =
Panda'da # fastboot protokolü (PandaBoard)
SUBSYSTEM == usb, ATTR {idVendor} == 0451 ″, ATTR {idÜrün} == d022 ″, MODE = 0600 ″, OWNER =
panda üzerinde # usbboot protokolü (PandaBoard)
SUBSYSTEM == usb, ATTR {idVendor} == 0451 ″, ATTR {idProduct} == d00f, MODE = 0600 ″, OWNER =
panda üzerinde # usbboot protokolü (PandaBoard ES)
SUBSYSTEM == usb, ATTR {idVendor} == 0451 ″, ATTR {idÜrün} == d010 ″, MODE = 0600 ″, OWNER =
Gruplayıcı / tilapiadaki # adb protokolü (Nexus 7)
SUBSYSTEM == usb, ATTR {idVendor} == 18d1 ″, ATTR {idÜrün} == 4e42 ″, MODE = 0600 ″, OWNER =
Gruplayıcı / tilapia üzerinde # fastboot protokolü (Nexus 7)
SUBSYSTEM == usb, ATTR {idVendor} == 18d1 ″, ATTR {idÜrün} == 4e40 ″, MODE = 0600 ″, OWNER =
manta'da # adb protokolü (Nexus 10)
SUBSYSTEM == usb, ATTR {idVendor} == 18d1 ″, ATTR {idÜrün} == 4ee2 ″, MODE = 0600 ″, OWNER =
manta'da # fastboot protokolü (Nexus 10)
SUBSYSTEM == usb, ATTR {idVendor} == 18d1 ″, ATTR {idProduct} == 4ee0 ″, MODE = 0600 ″, OWNER =

PRO TIP: Sorun bilgisayarınız veya dizüstü bilgisayar / dizüstü bilgisayar ile yapılmışsa, depoları tarayabilen ve bozuk ve eksik dosyaları değiştirebilen Reimage Plus Yazılımı'nı kullanmayı denemeniz gerekir. Bu, çoğu durumda, sorunun sistem bozulmasından kaynaklandığı yerlerde çalışır. Reimage Plus'ı tıklayarak buraya tıklayarak indirebilirsiniz.

Ve bash.rc'de:

ihracat USE_CCACHE = 1
Şimdi nihayet:

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Yani şimdi yapı ortamını kurmaya hazırız. Terminalde şunu yazın:

export TARGET_BUILD_VARIANT = kullanıcı TARGET_PRODUCT = devicename MTK_ROOT_CUSTOM = .. / mediatek / custom / TARGET_KERNEL_V
İşte bu komutların ne yapacağını:

BUILD_VARIANT: Çekirdeğin ne için üretileceğini belirtir.
TARGET_PRODUCT / TARGET_KERNEL_PRODUCT: Linux'a hangi aygıta özel dosyaların kullanılacağını söyler.
MTK_ROOT_CUSTOM: mediatek / custom klasörünün dizinini belirtir. Bu mide, çekirdek kaynağı ile aynı dizinde olduğunu unutmayın.
PATH: toolchain çalıştırılabilirlerinizi yolunuza ayarlar.
CROSS_COMPILE: Çapraz derleyici, derleyicinin çalıştığı platformdan başka bir platform için yürütülebilir kod oluşturabilen bir derleyicidir. Alet zinciri bu işlevi kolaylaştırır
ARCH = arm, ARM, İngiliz şirketi ARM Holdings tarafından geliştirilen azaltılmış komut seti hesaplama (RISC) mimarisine dayanan bilgisayar işlemcileri için bir dizi komut set mimarisidir. ARM ayrıca Android'de de kullanılmaktadır.

Dolayısıyla, 'export ARCH = arm' terminaline girdiğimizde, temel olarak Linux'a ARM mimarisi için inşa ettiğimizi söylüyoruz.

Şimdi, çekirdeği yapılandırmaya başlamaya hazırız. Çekirdek, temelde telefonunuzun kontrolörü olduğu için çok dikkatli olmanız gerekiyor. Bu yüzden dikkatli bir şekilde takip edin.


Büyük olasılıkla kernel_source / mediatek / config / devicename / autoconfig / kconfig / platformunda temel yapılandırmayı bulacaksınız.
Bu temel yapılandırmayı kullanabilir ve farklı gereksinimlerle, örneğin SELinux izinleri etkin veya devre dışı bırakılmış olarak kullanabiliriz. Her zaman sıfırdan bir temel yapılandırma oluşturabilirsin, ama gerçekten önermiyorum.

Şimdi Linux terminaline yazalım:

cd çekirdeği_source
cp mediatek / config / devicename / autoconfig / kconfig / platform .config
menuconfig yap

Bu, çekirdeğe özellik eklemenize izin verecek bir grafik arabirim oluşturacaktır. Örneğin, G / Ç Zamanlaması, CPU Yöneticileri, GPU Frekansı vb.
İstediğiniz ayarları yaptıktan sonra, çekirdeği derlemek için hazırsınız. Linux terminaline yazın:
zImage yapmak

Ve şöyle bir şey döndürmeli:

kemer / kol / önyükleme / zImage Hazır

PRO TIP: Sorun bilgisayarınız veya dizüstü bilgisayar / dizüstü bilgisayar ile yapılmışsa, depoları tarayabilen ve bozuk ve eksik dosyaları değiştirebilen Reimage Plus Yazılımı'nı kullanmayı denemeniz gerekir. Bu, çoğu durumda, sorunun sistem bozulmasından kaynaklandığı yerlerde çalışır. Reimage Plus'ı tıklayarak buraya tıklayarak indirebilirsiniz.

Facebook Twitter Google Plus Pinterest