Rehber KSU (KernelSU) nasıl derlenir?

364809

Kilopat
Katılım
6 Eylül 2020
Mesajlar
4.876
Makaleler
1
Çözümler
73
Daha önce bu konuda KernelSU'dan bahsetmiştim, sıra derleme aşamasına geldi.



Bağımlılıkları Yükleme

Bash:
sudo apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop git curl u-boot-tools mtd-utils android-sdk-libsparse-utils device-tree-compiler gdisk m4 bison flex make libssl-dev gcc-multilib libgnutls28-dev swig liblz4-tool libdw-dev dwarves bc cpio tar lz4 rsync ninja-build clang libelf-dev build-essential libncurses5

Daha çok Ubuntu kullanılıyor bu işler için fakat aynı paketleri başka dağıtımda kullanabilirsiniz. Ben rehberimi WSL2 Ubuntu'ya göre yapıyorum.

Kernel Kaynağı Edinme

Xiaomi
Samsung

Kernel kaynağınızı edinmeniz ve klasöre ayıklamanız gerekir. Git ile çekmek isterseniz aşağıdakine benzer bir komut kullanabilirsiniz.

1.png


Bash:
 git clone https://github.com/LineageOS/android_kernel_xiaomi_sdm660.git kernel

Toolchain Edinme


Bu siteden "gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz" ve "gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz" dosyalarını indirip tar -xf komutu ile klasöre ayıklayabilirsiniz.


Bu siteden ise clang indirip yine tar -xf komutu ile klasöre ayıklıyoruz.



İşlem sonunda çalışma dizinim bu şekilde görünüyor.

1704119179398.png


KernelSU Ekleme

Kernel dizinimize girip aşağıda bıraktığım kodu girmeniz KernelSU'yu eklemek için yeterlidir.

Bash:
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -


Config Ayarı

!Cihazının için olan Config'i arch/arm64/config dizininde bulabilirsiniz.

Config dosyamızı açıp bunların olup olmaığını kontrol ediyoruz. Yok ise eklemelisiniz.

Kod:
CONFIG_KPROBES=y
CONFIG_HAVE_KPROBES=y
CONFIG_KPROBE_EVENTS=y
CONFIG_MODULES=y

Geri kalan işlem derleme sekansıdır.

Kernel Derleme

Öncelikle Arch tanıtmamız gerekiyor. KernelSU ekliyorsanız ARM64 olması gerekir.

Bash:
export ARCH=ARM64
export SUBARCH=ARM64
export HEADER_ARCH=ARM64
export DTC_EXT=dtc

Toolchain PATH eklememiz gerekiyor.

PATH="CLANG:GCCA64:GCCA32:${PATH}"

Bash:
PATH="/home/smt/clang/bin:/home/smt/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin:/home/smt/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin:${PATH}"


!Toolchain dizinine gidip pwd komutunu kullanarak yukarıda verdiğim komutları düzenleyin ve toolchain tanıtma işlemini yapın.
Derleme işlemini başlatın.

Bash:
make O=out clean && make mrprober
Çalışma dizinini oluşturup kerneli temziliyoruz.

Bash:
make O=out ARCH=arm64 lavender_defconfig

!Cihazınız için olan defconfig dosyasını arch/arm64/config dizininde bulabilirsiniz.
Bash:
make -j4 O=out ARCH=arm64 CC=clang CLANG_TRIPLE=aarch64-linux-gnu- CROSS_COMPILE=aarch64-none-linux-gnu- CROSS_COMPILE_ARM32=arm-none-linux-gnueabihf-

!-j4 komutunda "x" değişkeni sizin işleme kaç çekirdek verdiğinizi belirtir. Örneğin 16 çekirdek bir işlemciniz var ise -j8 yapabilirsiniz.
!/usr/bin/env: python: No such file or directory hatası alırsanız bu hatayı sudo ln -s /usr/bin/python3 /usr/bin/python komutu ile çözebilirsiniz.


İşleminden sonra derleme başlar ve kernel out/arch/arm64/boot/ yolunda olur. Bu Image.gz dosyasını boot.img içersine yerleştirerek kullanabilirsiniz.
Yada linkte verdiğim dosyanın içini açıp kendi Image.gz-dtb dosyanızı koyarak flash işlemi yapabilirsiniz.


Sabahtan beri LinageOS kernelini derlediğim için fotoğraf paylaşamıyorum. Pixel Experiance kernelini tekrar derleyince fotoğraflarını ekleyeceğim.
 
Son düzenleme:
Daha önce bu konuda KernelSU'dan bahsetmiştim, sıra derleme aşamasına geldi.



bağımlılıkları yükleme

Bash:
sudo apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop git cur.
l u-boot-tools mtd-utils android-sdk-libsparse-utils device-tree-compiler gdisk m4 bison flex make libssl-dev gcc-multil
ib libgnutls28-dev swig liblz4-tool libdw-dev dwarves bc cpio tar lz4 rsync ninja-build clang libelf-dev build-essential libncurses5.

Daha çok Ubuntu kullanılıyor bu işler için fakat aynı paketleri başka dağıtımda kullanabilirsiniz. Ben rehberimi WSL2 Ubuntu'ya göre yapıyorum.

kernel kaynağı edinme

Xiaomi
Samsung

Kernel kaynağınızı edinmeniz ve klasöre ayıklamanız gerekir. Git ile çekmek isterseniz aşağıdakine benzer bir komut kullanabilirsiniz.

Eki Görüntüle 2070963

Bash:
 git clone https://github.com/LineageOS/android_kernel_xiaomi_sdm660.git kernel

toolchain edinme


Bu siteden "gcc-ARM-10.3-2021.07-X86_64-ARM-none-Linux-gnueabihf. Tar. Xz" ve "gcc-ARM-10.3-2021.07-X86_64-aarch64-none-Linux-GNU. Tar. Xz" dosyalarını indirip tar -xf komutu ile klasöre ayıklayabilirsiniz.


Bu siteden ise clang indirip yine tar -xf komutu ile klasöre ayıklıyoruz.


işlem sonunda çalışma dizinim bu şekilde görünüyor.

Eki Görüntüle 2071192

KernelSU ekleme

Kernel dizinimize girip aşağıda bıraktığım kodu girmeniz KernelSU'yu eklemek için yeterlidir.

Bash:
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -


Config ayarı

!cihazının için olan Config'i arch/arm64/config dizininde bulabilirsiniz.

Config dosyamızı açıp bunların olup olmaığını kontrol ediyoruz. Yok ise eklemelisiniz.

Kod:
CONFIG_KPROBES=y
CONFIG_HAVE_KPROBES=y
CONFIG_KPROBE_EVENTS=y
CONFIG_MODULES=y

Geri kalan işlem derleme sekansıdır.

kernel derleme

Öncelikle Arch tanıtmamız gerekiyor. KernelSU ekliyorsanız ARM64 olması gerekir.

Bash:
export ARCH=ARM64
export SUBARCH=ARM64
export HEADER_ARCH=ARM64
export DTC_EXT=dtc

Toolchain path eklememiz gerekiyor.

PATH="CLANG:GCCA64:GCCA32:${PATH}"

Bash:
PATH="/home/smt/clang/bin:/home/smt/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin:/home/smt/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin:${PATH}"

!toolchain dizinine gidip pwd komutunu kullanarak yukarıda verdiğim komutları düzenleyin ve toolchain tanıtma işlemini yapın.
Derleme işlemini başlatın.

Bash:
make O=out clean && make mrprober
Çalışma dizinini oluşturup kerneli temziliyoruz.

Bash:
make O=out ARCH=arm64 lavender_defconfig

!cihazınız için olan defconfig dosyasını arch/arm64/config dizininde bulabilirsiniz.
Bash:
make -j4 O=out ARCH=arm64 CC=clang CLANG_TRIPLE=aarch64-linux-gnu- CROSS_COMPILE=aarch64-none-linux-gnu- CROSS_COMPILE_ARM32=arm-none-linux-gnueabihf-

!-j4 komutunda "X" değişkeni sizin işleme kaç çekirdek verdiğinizi belirtir. Örneğin 16 çekirdek bir işlemciniz var ise -j8 yapabilirsiniz.
!/usr/bin/env: python: No such file or directory hatası alırsanız bu hatayı sudo ln -s /usr/bin/python3 /usr/bin/python komutu ile çözebilirsiniz.

İşleminden sonra derleme başlar ve kernel out/arch/arm64/boot/ yolunda olur. Bu ımage. Gz dosyasını boot.img içersine yerleştirerek kullanabilirsiniz.
Ya da linkte verdiğim dosyanın içini açıp kendi Image.gz-dtb dosyanızı koyarak flash işlemi yapabilirsiniz.


Sabahtan beri LineageOS kernelini derlediğim için fotoğraf paylaşamıyorum. PixelExperience kernelini tekrar derleyince fotoğraflarını ekleyeceğim.

İşte adam gibi adam.
Elinize sağlık.
@YZBruh hocamızın yeni mesleği 😂😂
 
İşte adam gibi adam.
Elinize sağlık.
@YZBruh hocamızın yeni mesleği 😂😂
Demek istediğinizi anlamadım. Ve şuan mesgulüm. Geç yanıt vereceğim...

Daha önce bu konuda KernelSU'dan bahsetmiştim, sıra derleme aşamasına geldi.



Bağımlılıkları Yükleme

Bash:
sudo apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop git cur
l u-boot-tools mtd-utils android-sdk-libsparse-utils device-tree-compiler gdisk m4 bison flex make libssl-dev gcc-multil
ib libgnutls28-dev swig liblz4-tool libdw-dev dwarves bc cpio tar lz4 rsync ninja-build clang libelf-dev build-essential libncurses5

Daha çok Ubuntu kullanılıyor bu işler için fakat aynı paketleri başka dağıtımda kullanabilirsiniz. Ben rehberimi WSL2 Ubuntu'ya göre yapıyorum.

Kernel Kaynağı Edinme

Xiaomi
Samsung

Kernel kaynağınızı edinmeniz ve klasöre ayıklamanız gerekir. Git ile çekmek isterseniz aşağıdakine benzer bir komut kullanabilirsiniz.

Eki Görüntüle 2070963

Bash:
 git clone https://github.com/LineageOS/android_kernel_xiaomi_sdm660.git kernel

Toolchain Edinme


Bu siteden "gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz" ve "gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz" dosyalarını indirip tar -xf komutu ile klasöre ayıklayabilirsiniz.


Bu siteden ise clang indirip yine tar -xf komutu ile klasöre ayıklıyoruz.



İşlem sonunda çalışma dizinim bu şekilde görünüyor.

Eki Görüntüle 2071192

KernelSU Ekleme

Kernel dizinimize girip aşağıda bıraktığım kodu girmeniz KernelSU'yu eklemek için yeterlidir.

Bash:
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -


Config Ayarı

!Cihazının için olan Config'i arch/arm64/config dizininde bulabilirsiniz.

Config dosyamızı açıp bunların olup olmaığını kontrol ediyoruz. Yok ise eklemelisiniz.

Kod:
CONFIG_KPROBES=y
CONFIG_HAVE_KPROBES=y
CONFIG_KPROBE_EVENTS=y
CONFIG_MODULES=y

Geri kalan işlem derleme sekansıdır.

Kernel Derleme

Öncelikle Arch tanıtmamız gerekiyor. KernelSU ekliyorsanız ARM64 olması gerekir.

Bash:
export ARCH=ARM64
export SUBARCH=ARM64
export HEADER_ARCH=ARM64
export DTC_EXT=dtc

Toolchain PATH eklememiz gerekiyor.

PATH="CLANG:GCCA64:GCCA32:${PATH}"

Bash:
PATH="/home/smt/clang/bin:/home/smt/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin:/home/smt/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin:${PATH}"


!Toolchain dizinine gidip pwd komutunu kullanarak yukarıda verdiğim komutları düzenleyin ve toolchain tanıtma işlemini yapın.
Derleme işlemini başlatın.

Bash:
make O=out clean && make mrprober
Çalışma dizinini oluşturup kerneli temziliyoruz.

Bash:
make O=out ARCH=arm64 lavender_defconfig

!Cihazınız için olan defconfig dosyasını arch/arm64/config dizininde bulabilirsiniz.
Bash:
make -j4 O=out ARCH=arm64 CC=clang CLANG_TRIPLE=aarch64-linux-gnu- CROSS_COMPILE=aarch64-none-linux-gnu- CROSS_COMPILE_ARM32=arm-none-linux-gnueabihf-

!-j4 komutunda "x" değişkeni sizin işleme kaç çekirdek verdiğinizi belirtir. Örneğin 16 çekirdek bir işlemciniz var ise -j8 yapabilirsiniz.
!/usr/bin/env: python: No such file or directory hatası alırsanız bu hatayı sudo ln -s /usr/bin/python3 /usr/bin/python komutu ile çözebilirsiniz.


İşleminden sonra derleme başlar ve kernel out/arch/arm64/boot/ yolunda olur. Bu Image.gz dosyasını boot.img içersine yerleştirerek kullanabilirsiniz.
Yada linkte verdiğim dosyanın içini açıp kendi Image.gz-dtb dosyanızı koyarak flash işlemi yapabilirsiniz.


Sabahtan beri LinageOS kernelini derlediğim için fotoğraf paylaşamıyorum. Pixel Experiance kernelini tekrar derleyince fotoğraflarını ekleyeceğim.
Elinize sağlık. Güzel ve başarılı olmuş. 3 önerim var...
1. İmage.gz yi flaşlamak için AnyKernel3 kullanmak daha iyi olabilir.
2. Kullanıcının çekirdek sayısının otomatik belirlenmesi için nproc kullanabilirsiniz. Örneğin; make -j$(nproc --all) kullanabilirsiniz.
3. Kurulacak paketler arasına python2 eklemek. Bazı durumlarda gerekiyor.

@364809 ve bu zaten AnyKernel 🙄...
 
Son düzenleme:
Elinize sağlık. Güzel ve başarılı olmuş. 3 önerim var...
1. İmage.gz yi flaşlamak için anykernel3 kullanmak daha iyi olabilir.
2. kullanıcının çekirdek sayısının otomatik belirlenmesi için nproc kullanabilirsiniz. Örneğin; make -j$(nproc --all) kullanabilirsiniz.
3. kurulacak paketler arasına python2 eklemek. Bazı durumlarda gerekiyor.

@364809 ve bu zaten anykernel 🙄...

Teşekkür ederim. Anykernel'i koyduğum pakette kullandım hocam.
make -j$(nproc --all) öğrendiğim iyi oldu.
 

Yeni konular

Geri
Yukarı