- Katılım
- 23 Haz 2018
- Mesajlar
- 1,118
- Tepkime puanı
- 5,737
- Puanları
- 113
- Yaş
- 22
Çevrimdışı
Merhaba,
Bu konu ZENLTY tarafından GSMTURKEY üyelerine açılmıştır.
Bilgiler alıntı değildir, tecrübelerimden irdelenmiştir.
Partitionların yedeklenmesi ile ilgili bir konudan bahsedeceğim.
Yedekleme işleminin mantığından başlayalım.
Ana partition : Cihazınızın bölümlerinin tutulduğu ana dizinlerdir.
Sdcard : Çıkartılabilir hafıza kartı değil, cihazın dahili depolama birimidir.
Sdcard : Çıkartılabilir hafıza kartı değil, cihazın dahili depolama birimidir.
Yedekleme işlemi yaparken linux'un 'dd' aracını kullanacağız.
Diğer konularımda da bahsettiğim gibi android, linux çekirdeği kullanıyor. Bu linux altyapısındaki araçları kısmen kullanabileceğimiz anlamına geliyor.
Diğer konularımda da bahsettiğim gibi android, linux çekirdeği kullanıyor. Bu linux altyapısındaki araçları kısmen kullanabileceğimiz anlamına geliyor.
Ana partition belirlemesi yapmanız gerekiyor.
Ana partition belirlemesinin ardından istediğimiz yedeği alacağız.
Ana partition belirleme hakkında konularım mevcut inceleyebilirsiniz. Ana partition genel olarak şuna benzer :
Ana partition belirlemesinin ardından istediğimiz yedeği alacağız.
Ana partition belirleme hakkında konularım mevcut inceleyebilirsiniz. Ana partition genel olarak şuna benzer :
/dev/block/bootdevice/by-name/
'dd' aracı en basit şekliyle şu şekilde çalışıyor :
Path dediğimiz bölüm aslında dizin anlamına gelir.
Biz dizin yerine partition yazacağız, zaten her partition alanı bir dizinden geliyor.
if=/path yazdığımız kısım, path bölümündeki dosyayı of=/path yazdığımız kısımdaki path alanına bir nevi yazdırıyor.
Ana partitionumuzu path, yedekleme yerini de sdcard yapmalıyız.
Bu durumda if=/partition of=/sdcard olduğu durumda partition bilgisini olduğu gibi sdcard a yazacaktır.
Ancak olduğu gibi üstünkörü sdcard yazamazsınız. Yazmanız durumunda sdcard içindeki tüm veriler yok olur ve if=/path kısmındaki veriler aktarılır.
Bu durumu önlemek için şöyle yapıyoruz :
sdcard/dosyaadi.uzantı şeklinde bir yol izliyoruz, umarım mantığı biraz olsun anlatabilmişimdir.
Ana partitionu kullanıp istediğimiz alt partitionları şimdi yedek alabiliriz.
Örnek vermek gerekirse boot partitonunu yedek alacağız. İzleyeceğimiz yol şu şekilde olmalıdır :
Ana partition + alt partitionu kullanıp dizin + partition yapmış olacağız.
Benim ana partitionum
bunları birleştirir isek
Yedeklemeyi alalım.
İşte bu komut ile anapartition + alt partitionumuzu sdcard ın içine boot dosyasına yazdırdık.
Kod:
dd if=/path/ of=/path
Biz dizin yerine partition yazacağız, zaten her partition alanı bir dizinden geliyor.
if=/path yazdığımız kısım, path bölümündeki dosyayı of=/path yazdığımız kısımdaki path alanına bir nevi yazdırıyor.
Ana partitionumuzu path, yedekleme yerini de sdcard yapmalıyız.
Bu durumda if=/partition of=/sdcard olduğu durumda partition bilgisini olduğu gibi sdcard a yazacaktır.
Ancak olduğu gibi üstünkörü sdcard yazamazsınız. Yazmanız durumunda sdcard içindeki tüm veriler yok olur ve if=/path kısmındaki veriler aktarılır.
Bu durumu önlemek için şöyle yapıyoruz :
Kod:
dd if=/path of=/sdcard/filename
Ana partitionu kullanıp istediğimiz alt partitionları şimdi yedek alabiliriz.
Örnek vermek gerekirse boot partitonunu yedek alacağız. İzleyeceğimiz yol şu şekilde olmalıdır :
Kod:
dd if=/anapartition/boot of=/sdcard/boot
Benim ana partitionum
/dev/block/bootdevice/by-name/
ve alt partitionum boot
,bunları birleştirir isek
/dev/block/bootdevice/by-name/boot
olacaktır. İşte bu bizim dizin + alt partitionumuz olacaktır.Yedeklemeyi alalım.
Kod:
dd if=/dev/block/bootdevice/by-name/boot of=/sdcard/boot
sdcard ın içine boot adlı dosyamızı oluşturduk ve bunu cihazdan çekme istiyoruz. Bunun için şu komutu kullanacağız.
adb aracını kullarak "of=/path" kısmını adb pull 'un sonrasına yazdırarak çekme işlemini gerçekleştirdik.
Eğer çekme işleminde onay veriyor ve dosya gözükmüyor ise adb aracınızı masaüstünde bir klasör oluşturup onun içinde çalıştırın.
C:/ diskinde adb aracı yönetici olarak çalışmadığı durumda veri yazma izni olmadığından dolayı dosyayı sdcard'tan bilgisayara çekemeyecektir.
Kod:
adb pull /sdcard/boot
Eğer çekme işleminde onay veriyor ve dosya gözükmüyor ise adb aracınızı masaüstünde bir klasör oluşturup onun içinde çalıştırın.
C:/ diskinde adb aracı yönetici olarak çalışmadığı durumda veri yazma izni olmadığından dolayı dosyayı sdcard'tan bilgisayara çekemeyecektir.
Sdcard'ın şifreli olduğu durumlar vardır. Crypted olan dataya veri yazma izniniz bulunmaz.
Bu durumda karşımıza iki yol çıkar, ya cihazın datasını ve sdcardını formatlayıp şifreyi kaldırırız ya da sdcard üzerinde işlem yapmayız.
Sdcard üzerinde işlem yapmamak hız artışı yaşatırken veri koruması da sağlar.
Sdcard şifreli ise /sideload partitionunu kullabiliriz. Her custom recovery'de /sideload partitionunu bulunur. Bunun sebebi adb sideload fonksiyonunda cihaza rom atılırken sdcard'da yer bulunmaması ihtimaline karşın yer açılmasıdır. Sideload bölümünde yer bulunur ve bizim partition yedeklemede işimizi fazlasıyla görür.
Yukarıda /sdcard yazdığım her yere /sideload yazabilirsiniz.
Unutmayın, sideload modunu veya adb sideload fonksiyonunu kullanmıyoruz yalnızca sideload fonksiyonu kullanımı için hazırlanan sideload bölümünü kullanıyoruz.
Ufak bir örnek :
Bu durumda karşımıza iki yol çıkar, ya cihazın datasını ve sdcardını formatlayıp şifreyi kaldırırız ya da sdcard üzerinde işlem yapmayız.
Sdcard üzerinde işlem yapmamak hız artışı yaşatırken veri koruması da sağlar.
Sdcard şifreli ise /sideload partitionunu kullabiliriz. Her custom recovery'de /sideload partitionunu bulunur. Bunun sebebi adb sideload fonksiyonunda cihaza rom atılırken sdcard'da yer bulunmaması ihtimaline karşın yer açılmasıdır. Sideload bölümünde yer bulunur ve bizim partition yedeklemede işimizi fazlasıyla görür.
Yukarıda /sdcard yazdığım her yere /sideload yazabilirsiniz.
Unutmayın, sideload modunu veya adb sideload fonksiyonunu kullanmıyoruz yalnızca sideload fonksiyonu kullanımı için hazırlanan sideload bölümünü kullanıyoruz.
Ufak bir örnek :
Kod:
dd if=/dev/block/bootdevice/by-name/boot of=/sideload/boot
adb pull /sideload/boot