android代碼獲取root
『壹』 如何讓android 程序 獲得 root許可權
一般來說, Android 下的應用程序可以「直接」得到的最大的許可權為 system ,但是如果我們需要在程序中執行某些需要 root 許可權的命令,如 ifconfig 等,就需要 root 許可權了。按照 Simon 的文章中提到的,應用程序有以下兩種辦法臨時獲得 root 許可權:
1) 實現一個 init 實現一個 Service ,來幫助 Android 應用程序執行 root 許可權的命令。
2) 實現一個虛擬設備,這個設備幫助 Android 應用程序執行 root 許可權的命令。
第二種辦法我這里沒有嘗試,暫時也不會。這里講講我在實現第一種辦法的過程和遇到的一些問題。
1. 將我們要執行的命令寫成腳本,或者可執行程序。
下面是我的腳本 ifconfig_test.sh :
# ! /system/bin/sh
ifconfig
注意: 腳本的第一行必須為 # ! /system/bin/sh ,否則無法執行,通過 dmesg 可以查看到信息內容為 cannot execve ./ifconfig_test.sh: Exec format error
也可以採用 C/C++ 編寫需要執行的命令或者程序,並在編譯 image 的時候編譯成可執行程序。
2. 在 init.rc 中注冊 service
Android 中的 service 需要在 init.rc 中注冊, Init.rc 中定義的 Service 將會被 init 進程創建,這樣將可以獲得 root 許可權。當得到相應的通知(通過屬性設置)後, init 進程會啟動該 service 。
本文中注冊的內容如下:
service ifconfig_test /system/etc/ifconfig_test.sh
oneshot
disabled
其中, oneshot 表示程序退出後不再重新啟動, disabled 表示不在系統啟動時啟動。
注意: 這里 service name 不能超過 16 個字元。我之前的 service name 由於定義的比較長, 18 個字元,設置屬性通知 service 啟動後查看 dmesg 可以看到提示: init: no such service 。查看 /system/core/init/parser.c 的源代碼,在 parse_service->valid_name 函數中可以看到如下內容: if (strlen(name) > 16) { return 0; } ,證明 service 的名字的確不能超過 16 個字元。
3. 將 Android 應用程序提升為 system 許可權
既然應用程序可以通過啟動 service 獲得 root 許可權,那麼豈不是很不安全。 Android 考慮到了這點,規定只有 system 許可權的應用程序才能設置屬性,通知 service 啟動。關於提升 system 許可權的文章網上已有很多,這里就不再細說,
4. 在應用程序中添加屬性設置代碼
前面已經提到,對於 Android 來說,應用程序通知 init 啟動 service 是通過設置系統屬性來完成的,具體為設置 System 系統屬性 「ctl.start」 為 「ifconfig_test」 ,這樣 Android 系統將會幫我們運行 ifconfig_test 這個 service 了。
對該系統屬性的設置有三種方法,分別對應三種不同的應用程序:
1) Java 代碼
Android 在 Java 庫中提供 System.getProperty 和 System.setProperty 方法, Java 程序可以通過他們來設置和獲得屬性。代碼如下:
SystemProperties.set("ctl.start", "ifconfig_test");
上面的代碼是通知 Android 執行 ifconfig_test service ,如果需要查詢當前 service 執行的狀態,如是否執行完畢,可以通過如下代碼查詢:
ret = SystemProperties.get("init.svc. ifconfig_test ", "");
if(ret != null && ret.equals("stopped"))
{
return true;
}
2) JNI 代碼
當編寫 NDK 的程序時,可以使用 property_get 和 property_set 這兩個 API 來獲得和設置屬性。使用這兩個 API 必須要包含頭文件 cutils/properties.h 和鏈接 libcutil 庫。
3) Shell 腳本
Android 提供了命令行 setprop 和 getprop 來設置和獲取屬性,他們可以在腳本中被使用。
由於我的程序是在 JNI 中調用腳本,腳本中又執行 ifconfig ,因此我將設置屬性的部分放在了腳本中完成,代碼如下:
setprop ctl.start ifconfig_test
#wait for the service until it stops
ret=1
while [ $ret -ne 0 ]
do
getprop | grep "$ENABLE_MAPPER_SRV" | grep stopped
ret=$?
done
通過上面 4 個步驟, Android 應用程序就獲得了 root 許可權,更具體的說,是在執行我們需要執行的命令時臨時獲得了 root 許可權。
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦
『貳』 安卓手機如何root許可權獲取
root許可權之前,需要去官網申請bl解鎖密碼,使用電腦解除手機bl鎖定,然後下載一個獲取工具,比如root大師,點擊一鍵root就可以了。
『叄』 安卓手機如何簡單獲取ROOT許可權
只要是使用安卓系統的手機都可以進行root,
下面我教你具體步驟:
1:打開手機上開發選項中的usb調試功能,
(有的手機需要多次點擊版本信息,才可以出現開發中的usb調試),
2:使用原裝的數據線將手機與電腦進行連接,
3:打開電腦上的「應用寶」功能,會迅速的識別你的手機機型,
並且自動的安裝相應的手機驅動,連接成功。
4:使用備份資料將手機中的重要信息或文件進行備份,
防止在root的過程中發生丟失的現象。
5:進入「工具箱」點擊「一鍵root功能」,等待3~5分鍾,
就可以出現提示root成功了,
6:成功後,就可以隨意的使用文件管理功能對手機內的所有文件進行刪除或者移動。
希望能幫到你。
『肆』 Android如何使用代碼獲得root許可權
最簡單的方法,使用一鍵root(推薦你還是使用第三方刷機工具進行破解ROOT,Z4ROOT只是給你一個方法,但是都是一樣的,那就是破解ROOT,你可以試試甜椒,卓大師,刷機精靈,網路,360,綠豆,深度刷機等等,,,如果都不行,再試試手機端破解,KINGROOT,Z4ROOT.):
1、首先下載z4root軟體並安裝到手機中,安裝完成後打開z4root軟體。
2、打開後將會出現兩個選項,第一個是臨時root,也就是reboot(重啟)後就會還原回未root狀態,第二個就是永久root了,使用第二個以後,我們重新開機也不再需要root許可權了。
3、選擇一項進入後,軟體就會自動對手機進行root,完全不用我們手工進行操作,非常得方便。
4、經過一段時間的等待之後,如果成功的話,會在軟體菜單中增加一個授權管理的圖標,有了這個圖標就表示我們的手機已經root成功了,現在你想怎麼用就怎麼用了。
不過z4root也有許多不足的地方,z4root也不是全能,並不能支持所有的安卓手機進行root,不能使用z4root進行root的椒友們只能通過其它方法進行root了。
不過,軟體法失敗率也不低,一般情況下刷機法更為可靠,互聯網上有各種機型的各種教程,因此通常情況下不建議使用軟體法。
『伍』 如何獲得android系統的root 許可權
1.系統自身不提供root:
2.這樣的情況就需要第三方軟體來root,下面用騰訊手機管家舉例。通過數據線連接電腦進行root
3.手機連接應用寶 。成功連接之後選擇「一鍵ROOT」。
4.ROOT過程中,手機會自動重啟幾次(切記不要拔出數據線)。中途手機會提示安裝root需要的軟體,點擊安裝隨後手機會進入重啟。
5.ROOT成功。在手機的桌面里會有圖標顯示
『陸』 Android 程序如何通過編程獲取 root 許可權運行
Android是基於linux,在linux系統里,想通過root許可權運行程序,需要使用su命令先切換到root用戶,然而在Android系統里沒有預置su命令,因此如果使用root許可權,需要在linux系統中進行非法提權,俗稱就是破解ROOT,一般情況下都是通過發現內核漏洞,讓系統執行一小塊代碼,這段代碼能充分利用該漏洞,從而非法獲取ROOT許可權。
獲取了ROOT許可權之後,就可以為所欲為,植入su命令到系統就可以了。
因此,對於已經破解ROOT的android系統,想通過ROOT許可權運行,先執行su即可。
如果尚未破解ROOT,需要在程序中先破解ROOT,通常情況下,不同版本的android的系統,使用的破解代碼也不一樣。
『柒』 安卓智能手機如何獲取一鍵ROOT許可權
安卓智能手機獲取一鍵ROOT許可權的方法如下:
准備材料:安卓智能手機
1、為了提高ROOT的成功率,選擇使用騰訊應用寶作為操作平台,手機連接後打開USB調試選項,鏈接手機,
『捌』 如何使android應用程序獲得root許可權
一般來說, Android 下的應用程序可以逗直接地得到的最大的許可權為 system ,但是如果我們需要在程序中執行某些需要 root 許可權的命令,如 ifconfig 等,就需要 root 許可權了。按照 Simon 的文章中提到的,應用程序有以下兩種辦法臨時獲得 root 許可權: 1) 實現一個 init 實現一個 Service ,來幫助 Android 應用程序執行 root 許可權的命令。 2) 實現一個虛擬設備,這個設備幫助 Android 應用程序執行 root 許可權的命令。 第二種辦法我這里沒有嘗試,暫時也不會。這里講講我在實現第一種辦法的過程和遇到的一些問題。 1. 將我們要執行的命令寫成腳本,或者可執行程序。 下面是我的腳本 ifconfig_test.sh : # ! /system/bin/sh ifconfig 注意: 腳本的第一行必須為 # ! /system/bin/sh ,否則無法執行,通過 dmesg 可以查看到信息內容為 cannot execve ./ifconfig_test.sh: Exec format error 也可以採用 C/C++ 編寫需要執行的命令或者程序,並在編譯 image 的時候編譯成可執行程序。 2. 在 init.rc 中注冊 service Android 中的 service 需要在 init.rc 中注冊, Init.rc 中定義的 Service 將會被 init 進程創建,這樣將可以獲得 root 許可權。當得到相應的通知(通過屬性設置)後, init 進程會啟動該 service 。 本文中注冊的內容如下: service ifconfig_test /system/etc/ifconfig_test.sh oneshot disabled 其中, oneshot 表示程序退出後不再重新啟動, disabled 表示不在系統啟動時啟動。 注意: 這里 service name 不能超過 16 個字元。我之前的 service name 由於定義的比較長, 18 個字元,設置屬性通知 service 啟動後查看 dmesg 可以看到提示: init: no such service 。查看 /system/core/init/parser.c 的源代碼,在 parse_service->valid_name 函數中可以看到如下內容: if (strlen(name) > 16) { return 0; } ,證明 service 的名字的確不能超過 16 個字元。 3. 將 Android 應用程序提升為 system 許可權 既然應用程序可以通過啟動 service 獲得 root 許可權,那麼豈不是很不安全。 Android 考慮到了這點,規定只有 system 許可權的應用程序才能設置屬性,通知 service 啟動。關於提升 system 許可權的文章網上已有很多,這里就不再細說, 4. 在應用程序中添加屬性設置代碼 前面已經提到,對於 Android 來說,應用程序通知 init 啟動 service 是通過設置系統屬性來完成的,具體為設置 System 系統屬性 逗ctl.start地 為 逗ifconfig_test地 ,這樣 Android 系統將會幫我們運行 ifconfig_test 這個 service 了。 對該系統屬性的設置有三種方法,分別對應三種不同的應用程序: 1) Java 代碼 Android 在 Java 庫中提供 System.getProperty 和 System.setProperty 方法, Java 程序可以通過他們來設置和獲得屬性。代碼如下: SystemProperties.set("ctl.start", "ifconfig_test"); 上面的代碼是通知 Android 執行 ifconfig_test service ,如果需要查詢當前 service 執行的狀態,如是否執行完畢,可以通過如下代碼查詢: ret = SystemProperties.get("init.svc. ifconfig_test ", ""); if(ret != null && ret.equals("stopped")) { return true; } 2) JNI 代碼 當編寫 NDK 的程序時,可以使用 property_get 和 property_set 這兩個 API 來獲得和設置屬性。使用這兩個 API 必須要包含頭文件 cutils/properties.h 和鏈接 libcutil 庫。 3) Shell 腳本 Android 提供了命令行 setprop 和 getprop 來設置和獲取屬性,他們可以在腳本中被使用。 由於我的程序是在 JNI 中調用腳本,腳本中又執行 ifconfig ,因此我將設置屬性的部分放在了腳本中完成,代碼如下: setprop ctl.start ifconfig_test #wait for the service until it stops ret=1 while [ $ret -ne 0 ] do getprop | grep "$ENABLE_MAPPER_SRV" | grep stopped ret=$? done 通過上面 4 個步驟, Android 應用程序就獲得了 root 許可權,更具體的說,是在執行我們需要執行的命令時臨時獲得了 root 許可權。 轉載僅供參考,版權屬於原作者。祝你愉快,滿意請~~哦
『玖』 如何使Android應用程序獲得root許可權
您好,很高興為您解答。
一般來說, Android 下的應用程序可以直接得到的最大的許可權為system,如果我們需要在程序中執行某些需要 root 許可權的命令,如 ifconfig 等,就需要 root 許可權了。按照 Simon 的文章中提到的,應用程序有以下兩種辦法臨時獲得 root 許可權:
1)實現一個 init 實現一個 Service ,來幫助 Android 應用程序執行 root 許可權的命令。
2) 實現一個虛擬設備,這個設備幫助 Android 應用程序執行 root 許可權的命令。
講下第一種辦法的過程和遇到的一些問題。
1.將我們要執行的命令寫成腳本,或者可執行程序。
下面是我的腳本 ifconfig_test.sh :
# ! /system/bin/sh
ifconfig
注意: 腳本的第一行必須為 # ! /system/bin/sh ,否則無法執行,通過 dmesg 可以查看到信息內容為 cannot execve ./ifconfig_test.sh: Exec format error
也可以採用 C/C++ 編寫需要執行的命令或者程序,並在編譯 image 的時候編譯成可執行程序。
2. 在 init.rc 中注冊 service
Android 中的 service 需要在 init.rc 中注冊, Init.rc 中定義的 Service 將會被 init 進程創建,這樣將可以獲得root 許可權。當得到相應的通知(通過屬性設置)後, init 進程會啟動該 service 。
本文中注冊的內容如下:
service ifconfig_test /system/etc/ifconfig_test.sh
oneshot
disabled
其中, oneshot 表示程序退出後不再重新啟動, disabled 表示不在系統啟動時啟動。
注意: 這里 service name 不能超過 16 個字元。我之前的 service name 由於定義的比較長, 18 個字元,設置屬性通知 service 啟動後查看 dmesg 可以看到提示: init: no such service 。查看 /system/core/init/parser.c 的源代碼,在 parse_service->valid_name 函數中可以看到如下內容: if (strlen(name) > 16) { return 0; } ,證明service 的名字的確不能超過 16 個字元。
3.將 Android 應用程序提升為 system 許可權
既然應用程序可以通過啟動 service 獲得 root 許可權,那麼豈不是很不安全。 Android 考慮到了這點,規定只有system 許可權的應用程序才能設置屬性,通知 service 啟動。
4.在應用程序中添加屬性設置代碼
對於 Android 來說,應用程序通知 init 啟動 service 是通過設置系統屬性來完成的,具體為設置 System 系統屬性 「ctl.start」 為 「ifconfig_test」 ,這樣 Android 系統將會幫我們運行 ifconfig_test 這個 service了。
對該系統屬性的設置有三種方法,分別對應三種不同的應用程序:
1) Java 代碼
Android 在 Java 庫中提供 System.getProperty 和 System.setProperty 方法, Java 程序可以通過他們來設置和獲得屬性。代碼如下:
SystemProperties.set("ctl.start", "ifconfig_test");
上面的代碼是通知 Android 執行 ifconfig_test service ,如果需要查詢當前 service 執行的狀態,如是否執行完畢,可以通過如下代碼查詢:
ret = SystemProperties.get("init.svc. ifconfig_test ", "");
if(ret != null && ret.equals("stopped"))
{
return true;
}
2) JNI 代碼
當編寫 NDK 的程序時,可以使用 property_get 和 property_set 這兩個 API 來獲得和設置屬性。使用這兩個API 必須要包含頭文件 cutils/properties.h 和鏈接 libcutil 庫。
3) Shell 腳本
Android 提供了命令行 setprop 和 getprop 來設置和獲取屬性,他們可以在腳本中被使用。
由於我的程序是在 JNI 中調用腳本,腳本中又執行 ifconfig ,因此我將設置屬性的部分放在了腳本中完成,代碼如下:
setprop ctl.start ifconfig_test
#wait for the service until it stops
ret=1
while [ $ret -ne 0 ]
do
getprop | grep "$ENABLE_MAPPER_SRV" | grep stopped
ret=$?
done
通過上面 4 個步驟, Android 應用程序就獲得了 root 許可權,更具體的說,是在執行我們需要執行的命令時臨時獲得了 root 許可權。
如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】
希望我的回答對您有所幫助,望採納!
~ O(∩_∩)O~
『拾』 android 如何獲取root許可權
首先在手機「設置」->「關於手機」里頭找到你的手機型號。然後在網路或者谷歌里頭搜索你的型號加上root,比如說我的手機型號是XT800+,那麼就搜索"XT800+ root",就能找到相應的root的教程和所需資源。因為每個型號的手機root所需要的包、程序、工具都不一樣,所以沒法直接給你。
此外,你也可以上常見的android論壇上找(限於比較大眾的型號),比如安卓論壇、安智論壇、91論壇、XDA等等,上面都會有人分享root的教程。不一定都能成功,但是多試幾次一般就都可以了。