[英]How to compile a pure native executable for rooted Android
我正在開發扎根的Android 2.3。 在我的應用程序中,使用jni機制,我調用了一個需要root權限才能運行的本機(c / c ++)函數,這就是為什么它總是會失敗的原因(即使我的電話是root的-因為特定的進程/應用程序需要授予root權限) 。
我想將該功能移動到將通過從Java運行的命令“ sudo exec_name”在Linux上運行的外部可執行文件( Runtime.getRuntime().exec("sudo ...")
;)
所以
1)如何編譯本機可執行文件? (不是通常的[.so]庫)
2)在擁有獨立的可執行文件之后,我必須將其放置在系統中的哪個位置並具有什么權限?
要編譯本機可執行文件,請使用include $(BUILD_EXECUTABLE)
而不是include $(BUILD_SHARED_LIBRARY)
。 NDK
有一個名為test-libstdc++
的示例,該示例顯示了如何構建最簡單的本機可執行文件。
然后,您需要將其放在/data/local
類的可執行位置,並調用chmod 777
使其可執行。 之后,您可以通過外殼運行它。
我想將該功能移動到將通過從Java(Runtime.getRuntime()。exec(“ sudo ...”);)運行的命令“ sudo exec_name”在Linux上運行的外部可執行文件。
在這種情況下,您的工作流程將如下所示:
/system/bin
chmod 777
運行它 前三點應該只做一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.