Gönderen Konu: [ANLATIM - UPDATE-SCRİPT] Custom Recoveryden Flashlanabilir Dosya Nasıl Yapılır  (Okunma sayısı 1830 defa)

Çevrimiçi bysalihidriscan

  • Rom Geliştiricisi
  • ****
  • Beğenmeler
  • -Beğenme Sayısı: 73
  • -Beğenilme Sayısı: 319
  • İleti: 1247
  • İnanıyorsanız Korkmayın... [Ali-İmran 139.Ayet]
  • Rom: TedyBeaR
  • Tlf Modeli: Null
  • Tlf Yazılımı: Bada
SELAMLAR

BİLGİLENDİRME
Bu konumuzda Custom Recoveryden nasıl flashlanabilir dosya yaparız onu işleyeceğiz.

Öncelikle elimizde bir adet Meta-Inf base klasörüne sahip olmamız gerekir Meta-Inf Nedir diye soracak olursanız Custom recoveriye bir zip gösterdiğiniz zaman o zip ile bağlantı kurduğu noktadır Meta-Inf klasörünü okuyarak zip içerisindeki dosyaları nereye yazması gerekiyorsa Meta-Inf klasörünü okuyarak işlemini tamamlar.

Link: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın

ANLATIM

Linkte verilen zip dosyasını indirin Winrar ile çıkartın.
Bir tane klasör oluşturun Zipin içerisinden çıkan Meta-Inf dosyasını alıp Yeni açtığınız klasörün içine koyun ve yanına "system" adında birtane daha klasör oluşturun bu system klasörü systeme hangi dosyayı yazdıracaksak o dosyayı koymamız gereken yerdir.


Meta-Inf DÜZENLEMESİ

Meta-Inf klasörünün içerisindeki Muhatap olacağımız yer "Update-Script" Dosyasıdır gerekli kodları onun içerisine gireceğiz.


Örnek olarak bir tane flashlayabileceğimiz dosya yaparak konumuza devam edelim.

1.Kod
Alıntı
ui_print("Örnek Yazı");

Şimdi Sırası ile Ana kodları öğreneceğiz 1. Kodumuz Bu kod Custom recoveryden dosyayı flashlarken karşımıza çıkacak olan yazılardır.

1.Kod bu kodu istediginiz her satıra girebilirsiniz nereye yazi yazmak istiyorsanız.
Alıntı
ui_print("Örnek Yazı");

2.kod yüklemeden önce systemi mount etme yani önyüklemeye okuma yazdırmaya açma.

Alıntı
run_program("/sbin/busybox", "mount", "/system");

3.kod flashlanacak dosyayı yazdıracağımız yol haritasını gösterme.

Alıntı
package_extract_dir("system", "/system");

Eğer systemden bir şey silmek istiyor isek şu kodları girmemiz gerekir ve silinecek dosyanın yol haritasını göstermemiz gereklidir.

Alıntı
delete_recursive("/system/priv-app/SystemUI/SystemUI.apk");

Kodlar örnektir Ben systemUI olarak gösterdim siz neyi silmek istiyor iseniz o yol haritasını girmeniz gereklidir.

Ve son kod tüm dosyalarımızı ve kodlarımızı ayarladıktan sonra systemi yüklemeye kapatmamız gereklidir kısaca Unmount yapmamız gerekir.

Alıntı
unmount("/system");

Ek Kod bu kod yükleyeceğiniz zip dosyasını kendi cihazınıza has kılar genelde bu kodu geliştiriciler yaptıkları kernelleri modları başka cihazlara yüklenip o cihazları kullanılamaz hale getirmemeleri için yaptıkları bir önlemdir sizde kendi romunuzun update-script'in baş kodu olarak ekleyip romu kendi cihazınıza has kılabilirsiniz.

Alıntı
assert(getprop("ro.product.device") == "ja3g");
getprop("ro.product.model") == "GT-I9500");

Kod örnektir kendi cihazınızın build.prop'una göre ayarlamanız gereklidir.. Örnek olarak Bir de Note4 de göre verelim.

Alıntı
assert(getprop("ro.product.device") == "trltexx");
getprop("ro.product.model") == "SM-N910C");

Bu anlatım sadece tek dosya ve grub Apk,Lib,V.s izinleri [R-W-R-R] Olan dosyalara aittir Zipi Custom Recoveryden flashlarken system izinlerini kendisi otomatik ayarlar.

Örnek Update-Script düzenlemesi.

Alıntı
ui_print("");
ui_print("");
ui_print("============================");
ui_print("           Galaxy Note4 ");
ui_print("                   SystemUI    Note 7     ");
ui_print("============================");
ui_print("");
run_program("/sbin/busybox", "mount", "/system");
package_extract_dir("system", "/system");
unmount("/system");
ui_print("•");
ui_print("Tesekkur etmeyi UNUTMA");
ui_print("•");

Eğer kendi romunu zu flashlanabilir dosya haline getirmek istiyorsanız durum birazdaha farklıdır çünkü Symlinkleri flashlamak için kendiniz ayarlamanız gereklidir Symlink nedir derseniz "System" klasörünün içerisindeki app,priv-app  dışında olan bin,xbin,lib,etc gibi dosyalardır.

Örnek Rom Update-Scripti

Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
unmount("/system");
unmount("/data");
show_progress(1.000000, 0);
ui_print("");
ui_print("Formatting system...");
ui_print("---------------------------");
format("ext4", "EMMC", "/dev/block/mmcblk0p20", "0", "/system");
set_progress(0.100000);
mount("ext4", "EMMC", "/dev/block/mmcblk0p20", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p21", "/data");
delete_recursive("/data/system/batterystats.bin");
set_progress(0.200000);
ui_print("---------------------------");
ui_print("Extracting system...");
ui_print("---------------------------");
package_extract_dir("system", "/system");
set_progress(0.500000);
ui_print("---------------------------");
ui_print("Creating symlinks...");
ui_print("---------------------------");
#SYM
symlink("app_process32", "/system/bin/app_process");
symlink("dalvikvm32", "/system/bin/dalvikvm");
symlink("libGLESv2.so", "/system/lib/libGLESv3.so");
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("/system/lib/libbluetooth_jni.so", "/system/app/Bluetooth/lib/arm/libbluetooth_jni.so");
symlink("/system/lib/libcommonpawrapper.so", "/system/app/RootPA/lib/arm/libcommonpawrapper.so");
symlink("/system/lib/libdefcontainer_jni.so", "/system/priv-app/DefaultContainerService/lib/arm/libdefcontainer_jni.so");
symlink("/system/lib/libjni_emailencryption.so", "/system/app/SecEmail_K/lib/arm/libjni_emailencryption.so");
symlink("/system/lib/libjni_pacprocessor.so", "/system/app/PacProcessor/lib/arm/libjni_pacprocessor.so");
symlink("/system/lib/libnfc_nci_jni.so", "/system/app/NfcNci/lib/arm/libnfc_nci_jni.so");
symlink("/system/lib/libprintspooler_jni.so", "/system/app/SPrintSpooler/lib/arm/libprintspooler_jni.so");
symlink("/system/lib/libsbrowser.so", "/system/app/SBrowser/lib/arm/libsbrowser.so");
symlink("/system/lib/libSecFileClientUnit.so", "/system/priv-app/SamsungLinkPlatform/lib/arm/libSecFileClientUnit.so");
symlink("/system/lib/libsecipx.so", "/system/priv-app/OutOfFocusViewer_WQHD_K/lib/arm/libsecipx.so");
symlink("/system/lib/libsecv8.so", "/system/app/SBrowser/lib/arm/libsecv8.so");
symlink("/system/lib/libSisoJpegCodec.so", "/system/priv-app/OutOfFocusViewer_WQHD_K/lib/arm/libSisoJpegCodec.so");
symlink("/system/lib/libSLPF_scone_stub.so", "/system/priv-app/SamsungLinkPlatform/lib/arm/libSLPF_scone_stub.so");
symlink("/system/lib/libSLPF_security.so", "/system/priv-app/SamsungLinkPlatform/lib/arm/libSLPF_security.so");
symlink("/system/lib/libSLPF_transcoder_jni_kk.so", "/system/priv-app/SamsungLinkPlatform/lib/arm/libSLPF_transcoder_jni_kk.so");
symlink("/system/lib/libSLPF_transcoder_jni_ll.so", "/system/priv-app/SamsungLinkPlatform/lib/arm/libSLPF_transcoder_jni_ll.so");
symlink("/system/lib/libSRIB_FocusShot.so", "/system/priv-app/OutOfFocusViewer_WQHD_K/lib/arm/libSRIB_FocusShot.so");
symlink("/system/lib/libswiftkeysdk-java.so", "/system/app/SamsungIME/lib/arm/libswiftkeysdk-java.so");
symlink("/system/lib/libwbs.so", "/system/app/SBrowser/lib/arm/libwbs.so");
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/chcon");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/clear");
symlink("toolbox", "/system/bin/cmp");
symlink("toolbox", "/system/bin/cp");
symlink("toolbox", "/system/bin/date");
symlink("toolbox", "/system/bin/dd");
symlink("toolbox", "/system/bin/df");
symlink("toolbox", "/system/bin/dmesg");
symlink("toolbox", "/system/bin/du");
symlink("toolbox", "/system/bin/getenforce");
symlink("toolbox", "/system/bin/getevent");
symlink("toolbox", "/system/bin/getprop");
symlink("toolbox", "/system/bin/getsebool");
symlink("toolbox", "/system/bin/grep");
symlink("toolbox", "/system/bin/hd");
symlink("toolbox", "/system/bin/id");
symlink("toolbox", "/system/bin/ifconfig");
symlink("toolbox", "/system/bin/iftop");
symlink("toolbox", "/system/bin/insmod");
symlink("toolbox", "/system/bin/ioctl");
symlink("toolbox", "/system/bin/ionice");
symlink("toolbox", "/system/bin/kill");
symlink("toolbox", "/system/bin/ln");
symlink("toolbox", "/system/bin/load_policy");
symlink("toolbox", "/system/bin/log");
symlink("toolbox", "/system/bin/ls");
symlink("toolbox", "/system/bin/lsmod");
symlink("toolbox", "/system/bin/lsof");
symlink("toolbox", "/system/bin/md5");
symlink("toolbox", "/system/bin/mkdir");
symlink("toolbox", "/system/bin/mknod");
symlink("toolbox", "/system/bin/mkswap");
symlink("toolbox", "/system/bin/mount");
symlink("toolbox", "/system/bin/mv");
symlink("toolbox", "/system/bin/nandread");
symlink("toolbox", "/system/bin/netstat");
symlink("toolbox", "/system/bin/newfs_msdos");
symlink("toolbox", "/system/bin/nohup");
symlink("toolbox", "/system/bin/notify");
symlink("toolbox", "/system/bin/printenv");
symlink("toolbox", "/system/bin/ps");
symlink("toolbox", "/system/bin/readlink");
symlink("toolbox", "/system/bin/renice");
symlink("toolbox", "/system/bin/restorecon");
symlink("toolbox", "/system/bin/rm");
symlink("toolbox", "/system/bin/rmdir");
symlink("toolbox", "/system/bin/rmmod");
symlink("toolbox", "/system/bin/route");
symlink("toolbox", "/system/bin/runcon");
symlink("toolbox", "/system/bin/schedtop");
symlink("toolbox", "/system/bin/sendevent");
symlink("toolbox", "/system/bin/setenforce");
symlink("toolbox", "/system/bin/setprop");
symlink("toolbox", "/system/bin/setsebool");
symlink("toolbox", "/system/bin/sleep");
symlink("toolbox", "/system/bin/smd");
symlink("toolbox", "/system/bin/start");
symlink("toolbox", "/system/bin/stop");
symlink("toolbox", "/system/bin/swapoff");
symlink("toolbox", "/system/bin/swapon");
symlink("toolbox", "/system/bin/sync");
symlink("toolbox", "/system/bin/top");
symlink("toolbox", "/system/bin/touch");
symlink("toolbox", "/system/bin/umount");
symlink("toolbox", "/system/bin/uptime");
symlink("toolbox", "/system/bin/vmstat");
symlink("toolbox", "/system/bin/watchprops");
symlink("toolbox", "/system/bin/wipe");
set_progress(0.600000);
ui_print("---------------------------");
ui_print("Extracting boot image...");
ui_print("---------------------------");
package_extract_file("boot.img", "/dev/block/mmcblk0p9");
ui_print("---------------------------");
ui_print("Extracting modem file...");
ui_print("---------------------------");
assert(package_extract_file("modem/modem.bin", "/tmp/modem.bin"),
write_raw_image("/tmp/modem.bin", "/dev/block/mmcblk0p13"),
delete("/tmp/modem.bin"));
set_progress(0.800000);
#ROOT
package_extract_dir("supersu", "/tmp/supersu");
run_program("/sbin/busybox", "unzip", "/tmp/supersu/SuperSU-v2.79-201612051815.zip", "META-INF/com/google/android/*", "-d", "/tmp/supersu");
run_program("/sbin/busybox", "sh", "/tmp/supersu/META-INF/com/google/android/update-binary", "dummy", "1", "/tmp/supersu/SuperSU-v2.79-201612051815.zip");
ui_print(" ");
#BUSYBOX
package_extract_dir("busybox", "/tmp/busybox");
run_program("/sbin/busybox", "unzip", "/tmp/busybox/UPDATE-Busybox.Installer.v1.24.2-ALL-signed.zip", "META-INF/com/google/android/*", "-d", "/tmp/busybox");
run_program("/sbin/busybox", "sh", "/tmp/busybox/META-INF/com/google/android/update-binary", "dummy", "1", "/tmp/busybox/UPDATE-Busybox.Installer.v1.24.2-ALL-signed.zip");
set_progress(0.900000);
ui_print("---------------------------");
ui_print("Done ...");
ui_print("---------------------------");
unmount("/system");
unmount("/data");
set_progress(1.000000);
ui_print("---------------------------");
ui_print("Installed");
ui_print("---------------------------");

Eğer Stock Romunuzu Flashlanabilir Dosya Haline Getirmek İstiyorsanız Zaten Assayed Kitchen Kullanın Uğraşmadan Direk Flashlanabilir Dosya Haline Getiricektir.
Örnek Olarak Verilen Roma Ait Update-Script @Bozkrut-_-05 Kardeşimizin Yaptığı Stock Tabanlı Romdan Alınmıştır Teşekkür Ederim.

Zaman Zaman Eğitim Anlatımlarına Devam Edeceğim.

Konularımı Faydalı Bulur Ve Beğenirseniz
Bir Teşekkürünüzü Esirgemeyiniz


« Son Düzenleme: 11 Kasım 2017, 03:29:15 Gönderen: JamesKenwaY »
Soru Ve Sorunlarınız İçin Telegram:@bysalihidriscan

Çevrimdışı eymenygt

  • Site Destek Ekibi
  • ***
  • Beğenmeler
  • -Beğenme Sayısı: 324
  • -Beğenilme Sayısı: 251
  • İleti: 1526
  • Rom: AEX.Mod
  • Tlf Modeli: Xiaomi MI 5
  • Tlf Yazılımı: Android 8.1.x
Eline sağlık. Bu işlerle bol bol uğraşacak boş vakti olan arkadaşlara yol gösterip önlerini açmak en azından Türk mod/rom geliştiricileri için çok iyi. Mahsuru yoksa bir iki düzeltme yapayım.
Bir dosyayı silmek için delete komutunu, bir klasörü silmek için ise delete_recursive komutunu kullanırız.
Örnek olarak:
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
delete("/system/priv-app/SystemUI/SystemUI.apk");
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
delete_recursive("/system/priv-app/SystemUI");Bir de örnek updater-script düzenlemesinde 5. satırda parantezi kapatmamışsın.
Başarılar.

Sent from my MI 5 using Tapatalk


Çevrimiçi bysalihidriscan

  • Rom Geliştiricisi
  • ****
  • Beğenmeler
  • -Beğenme Sayısı: 73
  • -Beğenilme Sayısı: 319
  • İleti: 1247
  • İnanıyorsanız Korkmayın... [Ali-İmran 139.Ayet]
  • Rom: TedyBeaR
  • Tlf Modeli: Null
  • Tlf Yazılımı: Bada
Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
Eline sağlık. Bu işlerle bol bol uğraşacak boş vakti olan arkadaşlara yol gösterip önlerini açmak en azından Türk mod/rom geliştiricileri için çok iyi. Mahsuru yoksa bir iki düzeltme yapayım.
Bir dosyayı silmek için delete komutunu, bir klasörü silmek için ise delete_recursive komutunu kullanırız.
Örnek olarak:
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
delete("/system/priv-app/SystemUI/SystemUI.apk");
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
delete_recursive("/system/priv-app/SystemUI");Bir de örnek updater-script düzenlemesinde 5. satırda parantezi kapatmamışsın.
Başarılar.

Sent from my MI 5 using Tapatalk


Saolun hocam teşekkürler.

Hangi parentezi kapatmamışım tam olarak farkedemediģimden soruyorum?

Sade delete komutunu kullanıyorum bazen silme işlemini gerćekleştirmiyor Delete_recursive her şeyi silme yetkisine daha çok sahip gibi yanlışmıyım acaba?

Edit: Yeni farkettim hocam örnek vermek açısından update-script'te bir kaç silme yapmıştım parentez sonuda arada kaynamış :D
« Son Düzenleme: 20 Ekim 2017, 19:35:44 Gönderen: JamesKenwaY »
Soru Ve Sorunlarınız İçin Telegram:@bysalihidriscan

Çevrimdışı SHADOW

  • Yesilcin.com Üyesi
  • *****
  • Beğenmeler
  • -Beğenme Sayısı: 6
  • -Beğenilme Sayısı: 21
  • İleti: 149
  • Rom: Stock
  • Tlf Modeli: Galaxy Note 4
  • Tlf Yazılımı: Android 6.0.x
beklenen konu  :hoba:
tesekkurler
Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın

Çevrimdışı azizcinar04

  • Yesilcin.com Üyesi
  • *****
  • Beğenmeler
  • -Beğenme Sayısı: 20
  • -Beğenilme Sayısı: 32
  • İleti: 88
  • yesilcin.com
  • Rom: ios 11
  • Tlf Modeli: iphone 7 plus
  • Tlf Yazılımı: iOS
Eline sağlık salih kardeşim.

Çevrimiçi bysalihidriscan

  • Rom Geliştiricisi
  • ****
  • Beğenmeler
  • -Beğenme Sayısı: 73
  • -Beğenilme Sayısı: 319
  • İleti: 1247
  • İnanıyorsanız Korkmayın... [Ali-İmran 139.Ayet]
  • Rom: TedyBeaR
  • Tlf Modeli: Null
  • Tlf Yazılımı: Bada
Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
beklenen konu  :hoba:
tesekkurler

Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
Eline sağlık salih kardeşim.


Teşekkürler.

Anlatımlarıma devam etmeyi düşünüyorum nasip olursa.
Soru Ve Sorunlarınız İçin Telegram:@bysalihidriscan

 

Güncel Konular

Bumblebeenin hikayesi Gönderen: Livet
[Bugün, 17:11:22]


[TedyBeaR][DreamUX] Full Note5 Port Rom[N910C/H] Gönderen: ahmetaslan
[18 Aralık 2018, 22:10:47]


[ROM][7.0-Nougat][GraceUX][TW] Refined Nougat Port N7 Fan Edition [N910C/H] Gönderen: MuratK1
[18 Aralık 2018, 21:32:58]


N920C Galaxy Note 5 N920CXXU2AOK6 Türkiye 5.1.1 Factory Firmware (4 Dosyalı) Gönderen: hako5995
[18 Aralık 2018, 16:30:09]


N950F Root Yapıldığında Kaybedilen Özellikler Var Mı? Gönderen: serkann45
[18 Aralık 2018, 15:51:31]


YAHUDİ LOBİSİ Gönderen: ORHAN AFACAN
[18 Aralık 2018, 11:36:39]


Note 4 Stock Rom Tema Store Desteği Ekleme Gönderen: Ensar canpolat
[18 Aralık 2018, 09:10:49]


Odin ile Yazılım(Firmware) Güncelleme Nasıl Yapılır? Gönderen: abdyasar
[18 Aralık 2018, 00:31:10]


Bütün Samsung Modellerinin PIT ve OPS Dosyaları Gönderen: heyysanadiyom
[17 Aralık 2018, 20:24:57]


A7 2016 ekran ışığı sorunu yardım Gönderen: apex00
[17 Aralık 2018, 16:08:14]


Galaxy Note 9 N960F Android Pie Beta Gönderen: Yuzarsif72
[17 Aralık 2018, 00:32:00]


WiFi_Odin Kullanarak Gear S3'e Firmware Yükleme, Güncelleme Rehberi Gönderen: abdyasar
[16 Aralık 2018, 21:17:18]


Telefon ekranını ters çevirme Gönderen: omer.onat.72
[16 Aralık 2018, 01:37:08]


N915F Galaxy Note 4 Edge Türkiye - N915FXXS1DQH5_6.0.1_Factory_Firmware_31.08.20 Gönderen: omerelma00
[15 Aralık 2018, 13:51:12]


NOTE 5 N920C ANDROID 7.0 SIFIRLAMA SONRASI GOOGLE HESABIMI UNUTTUM YARDIM Gönderen: --ozkan
[15 Aralık 2018, 11:55:36]


Yeni Modeller için Rootsuz ve Sayaç Artmadan CSC Değiştirme Gönderen: saatcioglu
[15 Aralık 2018, 11:19:38]


N910C/N910H Galaxy Note 4 TWRP Dokunmatik Custom Recovery Gönderen: Ensar canpolat
[15 Aralık 2018, 10:11:02]


yurtdışından s8+ aldım, csc Türkiye yapabilir miyim? Gönderen: alpaslan
[14 Aralık 2018, 21:23:22]


Note 5 N920Aya rom atamıyorum. Gönderen: silvery
[14 Aralık 2018, 01:29:35]


Note 5 N920Aya rom atamıyorum. Gönderen: silvery
[14 Aralık 2018, 01:27:41]