Bir hizmetten tetiklenen bir yerel (C++) uygulamadan "kabuk" için izin verilen bir dosyada fopen() işlevini çalıştırmaya çalışıyorum Android uygulamam. Yerel kodu kabuktan bir PIE olarak çalıştırdığımda, dosyayı okumak için açabiliyorum, ancak Android uygulamasından denediğimde, Android uygulaması farklı bir kullanıcı alanında çalıştırıldığı için dosyayı açamaz. bu yüzden dosyayı açamıyorum. Benim sorum şu, Android uygulamasından bir "kabuk" kullanıcısı veya "kabuk" bir çocuk olarak komutu çalıştırmak mümkün mü? Cihazın kökünü çıkarmadan bunu yapmak istiyorum, bu yüzden su söz konusu değil.Bir Android uygulamasından bir kabuk kullanıcısı olarak komut çalıştırılıyor
0
A
cevap
1
Köklü bir cihaz olmadan uygulamanızın kullanıcı kimliğini değiştiremezsiniz. Yapabilirseniz, güvenlik modeli çok kullanışlı olmaz. Uygulamanızın dosyaya erişmesi gerekiyorsa, uygun izinler vermeniz gerekir.
Diğer yaygın çözüm, işi dosya açmak ve bir dosya tanıtıcıyı geri vermek olan "kabuk" kullanıcısı olarak çalışan bir hizmete sahip olmaktır. Zor olan kısım, bu hizmeti "shell" kullanıcısı olarak başlatmanın bir yoluna ihtiyaç duymanızdır. FWIW, Java veya C++ ile kodlama yapsanız da durum aynıdır.
İlgili konular
- 1. Script bir komut dosyasından çalıştırılıyor -
- 2. Linux'taki bir dosyadan Perl komut dosyaları çalıştırılıyor
- 3. SQL Server'da veya bir Windows uygulamasından çalıştırılıyor derleme
- 4. Mac/MacRuby uygulamasından kabuk komutları nasıl çalıştırılır?
- 5. xdotool komut dosyası çalıştırılıyor
- 6. Kabuk komut
- 7. Durdurma Android stüdyo kabuk işlemi alışkanlık bir kabuk komut dosyasından bir bazı gradle görevleri yürütme am
- 8. Kabuk komut dosyasında bir komut içinde özel bir karakterin kullanılması
- 9. Bir ClickOnce uygulamasından komut satırı nasıl alınır?
- 10. Bir kabuk değişkenine komut çıktısı atama
- 11. Bir kabuk komut dosyasını fflush'a zorla
- 12. Stdin'i bir kabuk komut dosyasından kabuk komut dosyasındaki bir komuta nasıl yönlendiririm?
- 13. Bir kabuk komut dosyası ve başka bir kabuk komut dosyasından bağımsız değişkenleri nasıl çağırılır
- 14. Bir ASP.NET kullanıcısı programsal olarak oturum kapatma
- 15. IntelliJ IDEA: Çalıştır/Hata Ayıklama Yapılandırması Olarak Bir Kabuk Betiği Çalıştırılıyor
- 16. Kabuk komut Ben komut kabuk oldukça yeni duyuyorum
- 17. Çağrı göreli yolları kullanarak başka komut bir kabuk komut dosyası
- 18. Bir android uygulamasından REST API çağırma
- 19. Bir android uygulamasından PhoneGap eklentisi nasıl oluşturulur
- 20. kabuk komut dosyası
- 21. MongoDb kabuk komut dosyası
- 22. Bir kabuk komutunu bir php komut dosyasından yürütme
- 23. bastırmak kabuk komut dosyası hata iletileri benim kabuk komut dosyasında
- 24. sözdizimi hatası `(' kabuk komut
- 25. Node.js sunucusunu başlatmak için gulp ile bir komut çalıştırılıyor
- 26. Vim'ın kabuk olarak PowerShell ayarlama: Komut Windows üzerinde GVIM içinde kabuk olarak PowerShell kurmaya çalışıyorum doğru
- 27. Bir Birlik Uygulamasından bir Android etkinliği nasıl başlatılır?
- 28. Bir kabuk komut dosyasında bir çıktı dosyasına satır sonu ekleme
- 29. Java uygulamasından komut satırını açın
- 30. Birden çok NPM kullanıcısı yerel olarak nasıl kurulur?
sorunuzu 'shell' ile hiçbir şey almadınız, bu yüzden bu etiket kaldırılmalıdır. yerel kod nedir? NDK? eğer öyleyse, etiketlerinizi düzeltin ve 'android-ndk' ekleyin –