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

Çevrimdışı JamesKenwaY

  • Site Destek Ekibi
  • ***
  • Beğenmeler
  • -Beğenme Sayısı: 52
  • -Beğenilme Sayısı: 237
  • İleti: 1062
  • İnanıyorsanız Korkmayın... [Ali-İmran 139.Ayet]
  • Rom: Stock&RooT&Özelleştirme
  • Tlf Modeli: NOTE 4 & Tab 2
  • 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 »

Çevrimdışı eymenygt

  • Site Destek Ekibi
  • ***
  • Beğenmeler
  • -Beğenme Sayısı: 320
  • -Beğenilme Sayısı: 247
  • İleti: 1512
  • Rom: Darkness Remix
  • Tlf Modeli: Xiaomi MI 5
  • Tlf Yazılımı: Android 7.0.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ışı JamesKenwaY

  • Site Destek Ekibi
  • ***
  • Beğenmeler
  • -Beğenme Sayısı: 52
  • -Beğenilme Sayısı: 237
  • İleti: 1062
  • İnanıyorsanız Korkmayın... [Ali-İmran 139.Ayet]
  • Rom: Stock&RooT&Özelleştirme
  • Tlf Modeli: NOTE 4 & Tab 2
  • 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 »

Çevrimdışı mobiluzman26

  • Yesilcin.com Üyesi
  • *****
  • Beğenmeler
  • -Beğenme Sayısı: 4
  • -Beğenilme Sayısı: 20
  • İleti: 136
  • Dünya kadar malın olacagına güzel bi rom'un olsun.
  • Rom: Stock+Root+Mods
  • Tlf Modeli: Galaxy Note 4
  • Tlf Yazılımı: Android 6.0.x
beklenen konu  :hoba:
tesekkurler
****hayat sana stock rom verirse sen de root atarsın****
samsung galaxy note 4
casper cta e07-13a tablet
vodafone smart mini 875
samsung galaxy s3 mini
samsung galaxy e5 duos

Çevrimdışı azizcinar04

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

Çevrimdışı JamesKenwaY

  • Site Destek Ekibi
  • ***
  • Beğenmeler
  • -Beğenme Sayısı: 52
  • -Beğenilme Sayısı: 237
  • İleti: 1062
  • İnanıyorsanız Korkmayın... [Ali-İmran 139.Ayet]
  • Rom: Stock&RooT&Özelleştirme
  • Tlf Modeli: NOTE 4 & Tab 2
  • 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.

 

Güncel Konular

[Anlatım] System Uygulamaları Nasıl Portlanır Basit Yöntem Gönderen: ibrahim 118
[Bugün, 20:32:54]


G935F Galaxy S7 Edge TUR - G935FXXU2DRAG_7.0_Resmi & Factory_Firmware_29_01_2018 Gönderen: citroen200
[Bugün, 19:37:24]


1 OCAK 2018 GÜNCELLEMESİ VE ESKİ ROMA DÖNEMEME Gönderen: citroen200
[Bugün, 19:34:15]


Forumun gelişimi için naçizane önerilerim. Gönderen: sawgent
[Bugün, 19:10:14]


Wi-Fi araması menüde yok. Gönderen: jskat
[Bugün, 18:44:50]


[FINAL][ROM][I9500][5.0.2][S6/N5/S7 Port]Antorya Slim S.E.(v.11.0)(06.12.2016) Gönderen: Livet
[Bugün, 15:35:24]


N920C Galaxy Note 5 N920CXXU3CQC7 Türkiye 7.0 Resmi Sürümü (17.03.2017) Gönderen: abdyasar
[Bugün, 14:27:53]


SM-G530F modeli için custom rom bulabilir miyiz? Gönderen: abdyasar
[Bugün, 08:01:00]


Note 4 Telefonun kendi romunu alma hakkında yardım Gönderen: abdyasar
[Bugün, 07:52:26]


N950F Galaxy Note 8 TUR - N950FXXU3BRA8_7.1.1 Resmi&Factory_Firmware_13_02_2018 Gönderen: abdyasar
[19 Şubat 2018, 23:24:21]


Bütün Samsung Modellerinin PIT ve OPS Dosyaları Gönderen: abdyasar
[19 Şubat 2018, 18:53:39]


A520F can't open the serial(com) port hatası veriyor firmware yüklenmiyor Gönderen: kmlerg
[19 Şubat 2018, 16:20:36]


S6 telefonuma download moddan çıksın diye s4 root dosyasını yükledim telefon samsung ekranında kaldı Gönderen: fayzteck
[19 Şubat 2018, 14:53:05]


N9000Q Galaxy Note 3 N9000QXXUEBQA2 Türkiye Resmi Lollipop Sürümü [02.02.2017] Gönderen: factor19300
[19 Şubat 2018, 12:08:58]


n910x Galaxy Note 4 Custom Rom Tercihleriniz ve Önerileriniz Gönderen: bsolmaz5
[19 Şubat 2018, 07:37:52]


note 3 smn9000Q şarj sorunu Gönderen: can_avatar
[18 Şubat 2018, 22:52:15]


Galaxy S5 g900h 4G sorunu Gönderen: niksarli1979
[18 Şubat 2018, 22:50:38]


TAŞINDI: Galaxy S5 g900h 4G sorunu Gönderen: abdyasar
[18 Şubat 2018, 18:55:37]


G950F Galaxy S8 OREO - G950FXXU1CRAP_8.0.0_Factory_Firmware_12_02_2018 Gönderen: abdyasar
[18 Şubat 2018, 03:38:09]


Note 4 910F tel için aliexpres ten anakart almak istiyorum Gönderen: s.savas
[18 Şubat 2018, 00:23:49]