精華區beta AndroidDev 關於我們 聯絡資訊
※ 引述《sometimes4 (賠了夫人又折兵)》之銘言: : 請問有些軟體安裝使用時,會聲明需要root權限, : 想問的是使用sdk開發時,有那些api會需要root權限, : 如果沒有,那是ndk開發才有可能嗎? API =>不需要root NDK =>還是不需要ROOT android的 JAVA 應用程式 不可能 具有ROOT 權限 除了去zygote那邊搞些破壞,才有可能吧 為什麼要取得ROOT呢,那你必須要了解root是甚麼 定義上就是用 UID=0 的身分來做事情 叫做取得root權限 但所有的APK不可能讓自己UID=0,最強只能到UID=1000(system), 但這部分就是由zygote決定的,做應用程式的話沒辦法做到這樣 而且UID=1000還是很弱...很多事情都不能做..XD 所以一般來說ap要root就是用shell comand去跑程式, shell command可以讓你從JAVA去叫linux的C程式來跑, 然後對他(C程式)打些命令,他就會幫你做一些需要UID=0的事情 由於android的linux裡面並沒有sudo, 所以ROOT的機器(意味著使用非官方的ROM)會直接把"修改版" su 程式 放到你的手機中,然後該su程式有些額外的功能, 可以讓你用root的身分執行一些其他你想要的程式 當然,他執行前,可能會多一些有趣的檢查,像是現在普片使用的"授權程式"的APK 就是幫忙把關的 如果你要做一些root的動作,你就必須要準備好C的程式, 然後在JAVA中,可以使用類似 Runtime.getRuntime().exec("su -c helloworld"); 這類的功能來使用,su根據你機器中的版本不能,功能性也不一樣 像有些機器的su是不能接受 -c 參數的.... 也就是說你做出來的應用程式,放到android market上, 可能有些"號稱"root過的user不能使用 他可能會因此給你 "一顆星" 的評分 這方面就是很多經驗的累積了 :( -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.211.38.194