2013-04-29 13 views
0

這聽起來很奇怪,請不要判斷做這樣的事情是不切實際的,但我需要增加對Android設備控制出站網絡流量的支持。不必有選擇性。我基本上需要將設備置於通過WIFI靜音的模式。 (主要原因)原因是我有一個遠程控制的網絡應用程序,我需要能夠將它按需進行「通信睡眠」,然後在一段時間後「喚醒」或按需提供。按需方面是遠程控制的。因此,需要將設備置於只能接受綁定通信的狀態。Android - 可能實施簡單的防火牆執行?

我主要對TCP/UDP阻塞出站流量感興趣。我對單獨的防火牆應用程序不感興趣。我的應用程序包含一個已經實現所有通信代碼所需的服務。我只需要一些關於如何控制綁定通信的建議。

僅供參考,我有2.3和4.0設備的工作組合。

我可以讓我的服務實現一些基本的防火牆支持嗎?也許是設備配置使用的簡單代理? (類似於廣告攔截應用程序)

在此先感謝您的任何建議。如果可能的話,我會盡力在這裏分享它的代碼。

更新:對不起,我有和要求在這些設備上的根無論如何。

在代理理念上,我真的只需要在一個端口上聽黑洞。如果我可以從我的應用程序設置系統代理設置,當需要禁用出站通信時,我可以啓用代理並刪除所有連接。

如果我不能設置系統代理設置,我將不得不實施一個工作代理,要求用戶配置代理,並在收到連接時相應地控制它的行爲。

+0

我猜不,除非你有根。 – Cornholio 2013-04-29 17:57:13

+0

Cripes,我的GingerBread 2.3.4聯想A1s在WIFI高級下沒有代理設置! ARG ...我無法執行代理方法,因爲系統無法配置爲使用一個... – garlicman 2013-04-29 19:01:36

回答

0

我不如回答我自己的問題。使用root用戶可以包含iptables並進行一些命令行調用來控制流量。請注意,您應該具有關於有狀態防火牆概念的一些經驗,因爲除非您確切知道系統/應用程序應該執行什麼操作,否則出站DENY會導致混淆。 (隨機響應端口等)

代理服務適用於允許網絡代理支持的Android設備和版本。不幸的是,並不是所有的設備都支持它。 (我的姜麪包設備沒有代理支持,它只是不存在於用戶界面中,並且該API只能讀取HTTP_PROXY系統設置)

所以沒有示例代碼可以提供。我在我的設備上玩iptables。我可能會將其包含在我的應用程序中,無論如何這需要root。