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

Çevrimdışı bysalihidriscan

  • Rom Geliştiricisi
  • ****
  • Beğenmeler
  • -Beğenme Sayısı: 69
  • -Beğenilme Sayısı: 294
  • İleti: 1196
  • İnanıyorsanız Korkmayın... [Ali-İmran 139.Ayet]
  • Rom: SuperStock Rom
  • Tlf Modeli: Note 4-N910CQ
  • 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ı: 250
  • İ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


Çevrimdışı bysalihidriscan

  • Rom Geliştiricisi
  • ****
  • Beğenmeler
  • -Beğenme Sayısı: 69
  • -Beğenilme Sayısı: 294
  • İleti: 1196
  • İnanıyorsanız Korkmayın... [Ali-İmran 139.Ayet]
  • Rom: SuperStock Rom
  • Tlf Modeli: Note 4-N910CQ
  • 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ı: 5
  • -Beğenilme Sayısı: 21
  • İleti: 147
  • 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ı: 31
  • İleti: 88
  • yesilcin.com
  • Rom: ios 11
  • Tlf Modeli: iphone 7 plus
  • Tlf Yazılımı: iOS
Eline sağlık salih kardeşim.

Çevrimdışı bysalihidriscan

  • Rom Geliştiricisi
  • ****
  • Beğenmeler
  • -Beğenme Sayısı: 69
  • -Beğenilme Sayısı: 294
  • İleti: 1196
  • İnanıyorsanız Korkmayın... [Ali-İmran 139.Ayet]
  • Rom: SuperStock Rom
  • Tlf Modeli: Note 4-N910CQ
  • 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

N910CQ Galaxy Note 4 Türkiye - N910CXXS2DQHG_6.0.1_Factory_Firmware_09.09.2017 Gönderen: abdyasar
[Bugün, 12:49:13]


N910CQ Galaxy Note 4 N910CXXU2DPF8 Türkiye 6.0.1 Factory Firmware (4 Dosyalı) Gönderen: abdyasar
[Bugün, 12:04:02]


Türknet Geçtim İyimi Kötümü Ettim-Müşteri Hizmetleri sorunu Gönderen: not3_58
[Bugün, 08:49:12]


N920C Galaxy Note 5 TUR - N920CXXS5CRH1_7.0_Factory_Firmware_27_08_2018 Gönderen: mines2312323
[22 Eylül 2018, 20:11:52]


Odin ile Yazılım(Firmware) Güncelleme Nasıl Yapılır? Gönderen: abdyasar
[22 Eylül 2018, 09:16:35]


Galaxy Tab 7'' P1000 Root Yöntemi-CWM yükleme Gönderen: 06bozkurtum
[22 Eylül 2018, 05:50:38]


Aksiyon kamerasının görüntüsünü telefondan nasıl ters çevirebilirim? Gönderen: sawgent
[20 Eylül 2018, 17:38:35]


Şebeke gözükmüyor Gönderen: xprice16
[20 Eylül 2018, 09:55:27]


[SuperStock]Rom[Note5&Note4][N910C~N910CQ] [XXS2DQHG&XXS3BQA9] Gönderen: makan
[20 Eylül 2018, 00:51:22]


[FINAL][ROM][I9500][5.0.2][S6/N5/S7 Port]Antorya Slim S.E.(v.11.0)(06.12.2016) Gönderen: ibrahim 118
[19 Eylül 2018, 09:00:06]


[ROM][7.0-Nougat][GraceUX][TW] Refined Nougat Port N7 Fan Edition [N910C/H] Gönderen: lumina
[18 Eylül 2018, 22:58:19]


WiFi_Odin Kullanarak Gear S3'e Firmware Yükleme, Güncelleme Rehberi Gönderen: h.aydin
[18 Eylül 2018, 17:02:05]


Zte Upragade Tool (T50) Firmware Yükleme Programı Gönderen: serkanefendihz
[17 Eylül 2018, 13:11:17]


Sm-g925fq rom yükleme hatası. Gönderen: abdyasar
[16 Eylül 2018, 08:36:55]


((ROM))Galaxy Note 4_C/H_EyMeN_ROM_FiNAL Gönderen: lumina
[15 Eylül 2018, 20:48:15]


imei değiştirilmiş Note 5 güncelleme sonrası mobil ağları görmedi. Gönderen: yakupmarangoz65
[15 Eylül 2018, 12:06:30]


Sm-g955u1 modeli için yardım lütfen Gönderen: canjan
[14 Eylül 2018, 12:41:41]


G935F Galaxy S7 Edge Injustice Edition -TUR- G935FXXU1DQJ8 7.0 Factory Firmware Gönderen: abdyasar
[14 Eylül 2018, 11:23:39]


ZENGİN ASKER OLMAZ ŞEHİTTE OLMAZ Gönderen: ORHAN AFACAN
[14 Eylül 2018, 10:57:32]


G935F Galaxy S7 Edge Injustice Edition-TUR-G935FXXU2ERGE 8.0.0 Factory Firmware Gönderen: abdyasar
[14 Eylül 2018, 08:18:51]