Kendi başıma bazı uygulamalara kök izin nasıl eklenir?


11

Bazı uygulamalara kasıtlı olarak root izni vermemin bir yolu var mı? Belirli bir uygulama kök izin istediğinde SuperSU aracılığıyla otomatik olarak değil, bir uygulama üzerinden bazı araçlarla uygulama seçip kök izinleri verir.

Örneğin, en sevdiğim metin uygulamasını onaylananlar listesine ekliyorum ve ardından kök dosyaları bu uygulama aracılığıyla açabiliyorum.

Yanıtlar:


13

Hayır. Uygulama geliştiricisinden bunu talep etmelisiniz.

UNIX benzeri sistemlerde, izinler UID adı verilen bir şeyle yönetilir.

Her sürecin bir tane vardır ve neye erişebileceklerini belirler. Ayrıca, üyelerinin kullanabileceği izinleri olan gruplar da vardır. Bir uygulamanın izinleri Write to SD cardvarsa, bu izni olan bir gruba konur.

Kök izinleri bir istisnadır, çünkü bunlar uygulamanın bildiriminde değil, kodunda bildirilmiştir. Kök de bir grup değil, ayrı bir UID'dir (ayrı bir kullanıcı olduğu için), bu nedenle bir uygulamanın onu kullanması o kadar kolay değildir. Bunun için kök haklarına sahip uygulamaların açıkça yazılması gerekir.

Bunun nasıl çalıştığı, bir uygulama her zaman root olarak bir şey yapmak istediğinde, subunun yerine ikili dosyadan istemesi gerekir. sudaha sonra bu izinleri (örn. SuperSU) yöneten uygulamaya, uygulamanın root erişimi kazanmasına izin verilip verilmediğini soracaktır. Değilse, izin vermenizi veya reddetmenizi ister. Daha sonra eylem, rootuygulama kullanıcısı olarak değil , gerçekleştirilir . Bu eylemler uygulamanın ayrılmaz bir parçası değil, harici bir yürütülebilir dosyadır.

Teorik olarak bunu bir uygulamaya eklemek mümkün olsa da, bu Dalvik sanal makinesinin (sistemin apk dosyasını çalıştıran kısmı) dahili biçimi olan smali kodu yazma bilgisi gerektiren önemsiz bir işlem olacaktır. olarak ufak. Ve o zaman bile, uygulama diğer uygulamaların erişmesine izin verirse büyük bir güvenlik riski olacaktır: ayrıcalıklı kök erişimini normal erişiminden nasıl ayrı tutacağını bilemez. Yani gerçekte bu gerçekten mümkün değil.


1
Smali'nin ne olduğunu bilmeyenler için: Android'in dalvik sanal makine kodu için montaj lehçesi ve sıklıkla ters mühendislik dex dosyalarında kullanılır. Biraz belirsiz ne olabilir: Uygulama, programlı olarak kökleşmeye özen göstermelidir . Bu yüzden geliştiricinin eklemesi gerekir. SuperSU'ya eklemek, uygulama kök haklarını kullanmadığı sürece yardımcı olmaz.
ce4

Programcılar kök dosyaların açılmasını kabul etmek için uygulamayı kodlamamışsa, en sevdiğim metin düzenleyicisiyle bazı kök metin dosyasını açamıyorum?
AnDroDroo

1
Kesinlikle doğru. Bir örnek vermek gerekirse: uygulama root ile başlatılmazsa ve bazı "root dosyası" açmaya çalışırsa, dosyaya erişim hala uygulamalar UID'si ( olacak değil süper izinleri açmak için) isteyin. Öte yandan, uygulama kök UID (yani su <app>) kullanılarak başlatılırsa , o kök dosyaya kök olarak erişir ve böylece izin alır.
Izzy

Bu yüzden root dosyalarını okumak için başka metin editörleri kullanamadım :).
AnDroDroo

1
@Izzy AFAIK, kök UID ile normal bir Android uygulaması çalıştıramaz veya çalışan bir uygulamanın UID'sini değiştiremezsiniz. Yapabileceğiniz tek şey, komut satırı programlarını su ile yürütmek ve bu nedenle de yönetici izinleriyle komutları yürütmektir.
Robert

1

Sana yardım edebilecek bir yol buldum. Bunu Tasker'a root erişimi vermek için kullandım .

Terminal öykünücüsünü kullanarak

  • su
  • chmod 775 /location/of/folder/

metin düzenleyiciniz bu dizini okuyabilecektir ve bu nedenle klasöre bir dosya kaydetmeyi deneyebilirseniz, kök izni istemeye çalışır.

Ayrıca yazma hatası verebilir.


/location/of/folder/Kökten tepeye kadar olan tüm dizinler okunabilir / çevrilebilir olmalıdır. Ayrıca SELinux erişimi reddedebilir. Dolayısıyla bu yaklaşım nadiren pratiktir.
Irfan Latif
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.