Android 執行shell命令 非root


一個開源的項目已經完成了這個功能

app_process-shell-use,這個項目網上講解的,很多,我這邊就把操作時一些簡要步驟說明一下

但是該方式有缺點:必須要先USB連接,debug的時候,運行第13步,

斷開USB 無法再通過Socket運行adb shell命令

國內github又訪問不了了,我就在gitee上隨便找了個一樣的項目,

步驟如下:

1. Android Studio 新增一個沒有Activity的項目

2. 新建package shellService

3. 將路徑中四個文件都copy到新建的package下

文件地址:https://gitee.com/zhang_yu_xing/app_process-shell-use/tree/master/app/src/main/java/shellService

4. java ->項目包名 ->copyMainActivity,

文件地址:https://gitee.com/zhang_yu_xing/app_process-shell-use/blob/master/app/src/main/java/top/gtf35/shellapplicatontest/MainActivity.java

同路徑下,copy工具類

文件地址:https://gitee.com/zhang_yu_xing/app_process-shell-use/blob/master/app/src/main/java/top/gtf35/shellapplicatontest/SocketClient.java

5. res -> layout copy布局

文件地址:https://gitee.com/zhang_yu_xing/app_process-shell-use/blob/master/app/src/main/res/layout/activity_main.xml

6. 文件清單修改,copy應用入口,及默認權限

文件地址:https://gitee.com/zhang_yu_xing/app_process-shell-use/blob/master/app/src/main/AndroidManifest.xml

7.連上設備 debug運行

8. 在項目名稱\\app\build\outputs\apk\debug\下存在debug APK,將其解壓,將解壓后文件夾內的classes.dex copy到與debug APK同級的路徑下

 cd app\build\outputs\apk\debug\

9. Android Studio 底部terminal窗口,默認在當前項目下,cd app\build\outputs\apk\debug

10. adb push classes.dex /data/local/tmp

11.adb shell

12.cd /data/local/tmp

13. app_process -Djava.class.path=/data/local/tmp/classes.dex /system/bin shellService.Main

 

至此,執行shell命令的socket服務開啟,

打印內容如下:

>>>>>>Shell服務端程序被調用<<<<<<

服務端運行在4521端口

 

在設備運行的初始頁面中,輸入要執行的命令(如命令前帶有abd shell,可將其去掉),點擊執行即可

 

至此完成 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM