2013-03-08 49 views
2

我想在android源代碼中打開一個套接字。具體來說,我現在在DisplayDevice.cpp文件中,但是套接字代碼的位置可能會改變。在我現在做之後:在android代碼中創建一個套接字(不是在android應用程序中)獲取權限被拒絕

int fd = socket(AF_INET, SOCK_STREAM, 0); 

fd獲取返回爲-1,並且當我檢查錯誤消息它被列爲權限被拒絕。我已經爲此考慮了很多問題,大多數答案都是將互聯網權限添加到AndroidManifest文件中。這將不是爲我工作,因爲我添加的代碼是在android源代碼中。

我想知道是否有辦法繞過拒絕的權限。或者,如果有更好的方法來做到這一點/不同類型的插座的使用(現在我使用套接字從

謝謝。

+0

啊,你可能想把它標記爲C或C++的問題。這是非常BSD式套接字 – 2013-03-08 20:56:33

回答

2

這是很自然的,你得到Permission Denied錯誤。這簡直是因爲你沒有正確的許可:)。退房android permission model

想象一下像操作系統中的普通用戶一樣的場景,並且您會編寫一個程序,嘗試打開與您的套接字類似的套接字。你很可能會面臨同樣的問題,這取決於在哪裏創建指定的套接字。

當您嘗試在DisplayDevice.cpp(從源代碼編譯android)中創建套接字時,您可能有興趣將源代碼編譯爲超級用戶。 Here是由m-ric發佈的解決方案(我從未測試過)。

一些有用的指針/在類似的方向和研究期間我發現是有用的關於這個迷人主題的參考資料包括:

  1. https://android.stackexchange.com/questions/18857/how-to-build-compile-su-from-source
  2. execv命令=>http://code.google.com/p/superuser/source/browse/trunk/su/su.c?r=2#169
  3. https://github.com/ChainsDD/su-binary
  4. http://e2e.ti.com/support/omap/f/849/p/178679/648158.aspx#648158
  5. 來自Google I/O 2011的視頻http://www.youtube.com/watch?v=5yorhsSPFG4
+0

謝謝。這真的幫助我開始正確的方向。我仍然在尋找更明確的答案,因爲我很困惑,到底發生了什麼以及在多解決方案中會發生什麼。所有這一切,這是非常有用的信息向前邁進。 – challeng 2013-03-09 18:16:28

相關問題