『壹』 如何以編程方式創建一個新的android 4.0 VPN介面
關於Android VPN編程,網上的資料比較少,本人最近有一個關於在Android平台下開發VPN 客戶端的項目,在項目剛開始的時候,進行比較艱難,主要是android(4.0之前)的VPN領域鮮有API可供直接調用,也沒有官方的說明文檔。經過將近一個星期的研究,終於有些頭緒,在此本人願將一些經驗與大家共享。
http://blog.csdn.net/whyonly/article/details/7741270
有代碼教程,請參考使用。
『貳』 如何進入android的官方開發者網站
凡是java官方,安卓API官網都屬於官方開發者網站,你可以利用里邊開源信息進行學習和開發,例如:http://android.toolib.net/
但是我猜你是因為谷歌被封鎖,鏈接不上吧?
可以跳牆或者改下本地host文件
如圖位置:
在最後一行加一段IP地址就可以了,代碼如下:
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an indivial line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on indivial
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
注意:一般不能直接保存這個文件的,會提示你被佔用,所以教你個小技巧,可以先把文件復制到桌面上,然後修改,然後再覆蓋到原來C盤路徑里,這樣是可以的。
『叄』 Android SDK 各版本之間有什麼差異
一、Android1、1
2008 年9月發布的Android第一版
二、Android1、5 Cupcake (紙杯蛋糕)
2009年4月30日,官方1、5版本(Cupcake 紙杯蛋糕)的Android發布。主要的更新如下:
1、拍攝/播放影片,並支持上傳到Youtube
2、支持立體聲藍牙耳機,同時改善自動配對性能
3、最新的採用WebKit技術的瀏覽器,支持復制/貼上和頁面中搜索
4、GPS性能大大提高
5、提供屏幕虛擬鍵盤
6、主屏幕增加音樂播放器和相框widgets
7、應用程序自動隨著手機旋轉
8、簡訊、Gmail、日暦,瀏覽器的用戶介面大幅改進,如Gmail可以批量刪除郵件
9、相機啟動速度加快,拍攝圖片可以直接上傳到Picasa
10、來電照片顯示
三、Android1、6 Donut (甜甜圈)
2009年9月15日,1、6(Donut 甜甜圈)版本軟體開發工具包發布。主要的更新如下:
1、重新設計的Android Market手勢
2、支持支持CDMA網路
3、文字轉語音系統(Text-to-Speech)
4、快速搜索框
5、全新的拍照介面
6、查看應用程序耗電
7、支持虛擬私人網路(VPN)
8、支持更多的屏幕解析度。
9、支持OpenCore2媒體引擎
10、新增面向視覺或聽覺困難人群的易用性插件
四、Android2、0/2、0、1/2、1 Eclair (松餅)
2009年10月26日,2、0(Eclair 松餅)版本軟體開發工具包發布。主要的更新如下:
1、優化硬體速度
2、"Car Home"程序
3、支持更多的屏幕解析度
4、改良的用戶界面
5、新的瀏覽器的用戶介面和支持HTML5
6、新的聯系人名單
7、更好的白色/黑色背景比率
8、改進Google Maps3、1、2
9、支持Microsoft Exchange
10、支持內置相機閃光燈
11、支持數碼變焦
12、改進的虛擬鍵盤
13、支持藍牙2、1
14、支持動態桌面的設計
五、Android2、2/2、2、1Froyo(凍酸奶)
2010年5月20日,2、2(Froyo 凍酸奶)版本軟體開發工具包發布。主要的更新如下:
1、整體性能大幅度的提升
2、3G網路共享功能。
3、Flash的支持。
4、App2sd功能。
5、全新的軟體商店。
6、更多的Web應用API介面的開發。
六、Android2、3 Gingerbread (姜餅)
2011年2月2日, 3、0(Honeycomb 蜂巢)版本主要更新如下:
1·優化針對平板
2·全新設計的UI增強網頁瀏覽功能
3、·n-app purchases功能
七、Android3、1 Honeycomb (蜂巢)
2011年5月11日在Google I/O開發者大會宣布發布,版本主要更新如下:
1、Honeycomb 蜂巢(改進3、0BUG)
2、經過優化的Gmail電子郵箱;
3、全面支持GoogleMaps
4、將Android手機系統跟平板系統再次合並從而方便開發者。
5、任務管理器可滾動,支持USB 輸入設備(鍵盤、滑鼠等)。
6、支持 Google TV、可以支持XBOX 360無線手柄
7、widget支持的變化,能更加容易的定製屏幕widget插件。
八、Android3、2 Honeycomb (蜂巢)
2011年7月13日發布,版本更新如下:
1、支持7英寸設備
2、引入了應用顯示縮放功能.
九、Android4、0 Ice Cream 「冰激凌三明治」
2011年10月19日 在香港發布,4、0(Ice Cream Sandwich 冰激凌三明治)版本主要更新如下:
1、藍色主題
2、接近於桌面版的Chrome Lite瀏覽器,有離線閱讀,同步Chrome書簽,新的標簽樣式等。
3、截圖功能
4、更強大的圖片編輯功能
5、自帶照片應用堪比Instagram,可以加濾鏡、加相框,進行360度全景拍攝,照片還能根據地點來排序
6、Gmail加入手勢、離線搜索功能,UI更強大。
7、新功能People:以聯系人照片為核心,界面偏重滑動而非點擊,集成了Twitter、Linkedin、Google+等通訊工具。有望支持用戶自定義添加第三方服務。
8、新增流量管理工具,可具體查看每個應用產生的流量。
9、正在運行的程序可以像電腦一樣的互相切換
10、人臉識別功能
11、系統優化、速度更快
12、支持虛擬按鍵,手機可以不再擁有任何按鍵
13、專為3D優化的驅動
14、平板電腦和智能手機通用
十、Android 4、3 Jelly Bean「果凍豆」
2013年7月15日 發布,4、3( Jelly Bean 果凍豆)版本主要更新如下:
1、Nexus 裝置在 Google Play 播放影片時,可開啟 Fraunhofer Cingo 提供的虛擬環繞音效效果。
2、 在撥號盤上輸入數字,會自動建議符合名字或號碼的聯系人。此功能可開啟或關閉。
3、 屏幕觸控輸入的演算法做了改進,讓輸入文字變得更容易。
4、 游戲手把或游戲桿的輸入延遲(latency)降低。
5、 無需開啟 Wi-Fi,即可利用 Wi-Fi 做定位的輔助。
6、 支持 BluetoothSmart(先前稱為 Bluetooth Low Energy),Nexus 4 與新 Nexus 7 現在已經是 Bluetooth Smart Ready 裝置。
7、 支持藍牙 AVRCP 1.3 版,可在車用音響上顯示歌名。
8、 「已停用」應用程序分頁:在「設定」→「應用程序」中新增「已停用」分頁,可統一管理已停用的應用程序。
9、 支持 OpenGL ES 3.0,可提供下一代畫質更佳的 3D 游戲體驗。
10、支持新 Nexus 7 與 Nexus 10 的屏幕無線傳輸功能,可將屏幕畫面無線投射到電視上。
11、支持更多語言:南非語(Afrikanns)、阿姆哈拉語(Amharic)、印地語(Hindi)、斯瓦希里語(Swahili)、祖魯語(Zulu)。
12、主畫面、設定、電話、聯系人應用程序可支持右向左寫語言(RTL,如希伯來語、阿拉伯語)
13、支持「限制賬號」,可設定讓裝置只能使用特定應用程序與內容。
14、簡化設定精靈,讓首次開機的設定更容易
15、在鎖定畫面切換用戶賬號的速度更快
『肆』 通過hook connect 函數 實現 VPN功能是否可行
在android系統中,可以使用iptables控制單個應用網路訪問。在google code上有一個開源項目-droidwall就是基於iptables實現的。除了iptables可以實現控制單個應用網路訪問外,還可以通過攔截應用中的connect函數,達到控制應用訪問網路的目的。下面從幾個方面分析android應用中connect調用流程為例來實現攔截connect實現網路禁用和ip過濾。(以下分析基於4.2源碼)
1.android中網路訪問流程
1)android系統中訪問網路可以通過Socket.java、URL.java、HttpPost.java、HttpGet.java等關鍵類來訪問網路資源。通過代碼追蹤,這些類訪問網路資源最終需要通過native方式,調用linux系統下的socket函數訪問網路。在android4.2源碼中,java層訪問網路得native方法定義在源碼路徑libcore/luni/src/main/java/libcore/io/Posix.java中(4.0之前的網路系統、文件系統的native方法是獨立分開得,4.0之後組織在Posix.java中)。如下是Posix.java中的代碼片段:
public final class Posix implements Os { Posix() { } public native FileDescriptor accept(FileDescriptor fd, InetSocketAddress peerAddress) throws ErrnoException, SocketException; public native boolean access(String path, int mode) throws ErrnoException; public native void bind(FileDescriptor fd, InetAddress address, int port) throws ErrnoException, SocketException; ...... //對應linux下的connect系統調用 public native void connect(FileDescriptor fd, InetAddress address, int port) throws ErrnoException, SocketException;
2)Posix.java中的native方法實現源碼路徑libcore/luni/src/main/native/libcore_io_Posix.cpp文件中,native connect方法實現代碼片段如下:
taticvoidPosix_connect(JNIEnv*env,jobject,jobjectjavaFd,jobjectjavaAddress,jintport)
{
sockaddr_storagess;
if(!inetAddressToSockaddr(env,javaAddress,port,&ss))
{
return;
}
constsockaddr*sa=reinterpret_cast<constsockaddr*>(&ss);
(void)NET_FAILURE_RETRY(env,int,connect,javaFd,sa,sizeof(sockaddr_storage));
}
有上代碼可知,java層connect最終功能由linux系統connect函數實現。
2.so注入
so注入可以參考古河大哥牛逼的libInject(點擊這里訪問)。
3.攔截connect庫編寫
在connect中,獲取傳入的參數ip地址,根據需要把需要禁用的ip地址改為127.0.01.以下是我測試的攔截connect函數關鍵代碼:
intnew_connect(intsockfd,conststructsockaddr*addr,socklen_taddrlen)
{
LOGDD("HOOK
====>newconnect****************");
charip[128]={0};
intport=-1;
if(addr->sa_family==AF_INET)
{
structsockaddr_in*sa4=(structsockaddr_in*)addr;
inet_ntop(AF_INET,(void*)(structsockaddr*)&sa4->sin_addr,ip,128);
port=ntohs(sa4->sin_port);
LOGDD("AF_INETIP===>%s:%d",ip,port);
}
elseif(addr->sa_family==AF_INET6)
{
structsockaddr_in6*sa6=(structsockaddr_in6*)addr;
char*ipv6=NULL;
inet_ntop(AF_INET6,(void*)(structsockaddr*)&sa6->sin6_addr,ip,128);
ipv6=strstr(ip,"f:");
if(NULL!=ipv6)
{
strcpy(ip,ipv6+2);
}
port=ntohs(sa6->sin6_port);
LOGDD("af_inet6
IP===>%s:%d",ip,port);
}
else
{
returnold_connect(sockfd,addr,addrlen);
}
if(strcmp(ip,"115.23.20.178")==0)
{
LOGDD("%s
==>127.0.0.1",ip);
structsockaddr_inmy_addr;
intmy_len=sizeof(structsockaddr_in);
bzero(&my_addr,sizeof(my_addr));
my_addr.sin_family=AF_INET;
my_addr.sin_port=htons(80);
my_addr.sin_addr.s_addr=inet_addr("127.0.0.1");
returnold_connect(sockfd,(constsockaddr*)&my_addr,sizeof(my_addr));
}
else
{
returnold_connect(sockfd,addr,addrlen);
}
}
4.攔截connect函數功效
1)禁用應用網路訪問。
2)過濾廣告ip
3)禁用定位功能
『伍』 android上的ipsec支持ipsec-v2和ipsec-v3嗎
1, Is the IPsec VPN software mole cryptographic functions meet the federal certification Level 1 requirements of USA?
2, Is the IPsec VPN software mole implemenlation support IPsec-v2 (RFC2401, 2402, 2406) and IPsec-v3 (RFC4301, 4302, 4303)?
3, Is the IPsec VPN software mole IKE implementation support IKEv1 (RFC2408, 2409, 2412) with shared-secret and certification option?
Is it support IKE negotiation with both Main mode and Aggressive Mode, Mode-Config and XAUTH?
4, Is the IPsec VPN software mole IKE implementation support IKEv2 (RFC5996)?
5, Is the SSL VPN client cryptographic functions meet the federal certification Level 1 requirements of USA?
『陸』 如何取消Android VPN設置的鎖屏密碼或PIN
進系統設置,找一下有沒有鎖屏或者安全之類的設置項,進去後找到鎖屏密碼設置為無密碼就行了,VPN設置的密碼保護就是平時用的鎖屏密碼
『柒』 做移動應用APP,一套java後台可否搞定android和ios
完全可以,做一套通用的介面。介面形式使用基於http的post或者get,用json或xml封裝數據。
大部分公司都是這么用的
加密解密上可能ios上會有點小問題,但網路上都有解決方案。
『捌』 Android程序員的就業前景
Android在中國的發展
Android在中國的前景十分廣闊,首先是有成熟的消費者,在國內,十分紅火,這些社區為Android在中國的普及做了很好的推廣作用。國內廠商和運營商也紛紛加入了Android陣營,包括中國移動,中國聯通,中興通訊,華為通訊,聯想等大企業,同時不僅僅局限於手機,國內廠家也陸續推出了採用Android系統的MID產品,比較著名的包括由Rockchip和藍魔推出的同時具備高清播放和智能系統的音悅匯W7和2010年推出的原道N5,我們可以預見Android也將會被廣泛應用在國產智能上網設備上,將進一步擴大Andorid系統的應用范圍。另一方面,由於國內政策的限制,導致Android的部分功能(如Android market)在國內無法正常使用,常用的解決方法是使用VPN服務來訪問。
Android的就業前景和行業需求
目前中國擁有世界上最大的手機用戶群,再加上3G的推出對整個行業的巨大推動作用,全世界所有大中小型手機製造商幾乎都在招聘Android工程師。然而每天有超過16萬台的Android設備出貨,一年後全球可能會有超過1億台的Android設備,以後將超越iphone成為智能手機平台的旗艦。
隨著Android平台的擴張,引發了Android人才荒,2010年移動開發人才需求20萬,未來人才需求缺口將達百萬。3G人才全球緊缺,實用人才培養已迫在眉睫。在國內三大運營商如火如荼的3G營銷戰持續升溫,再加上3G的推出對整個行業的巨大推動作用,無疑將引爆3G手機開發工程師這個黃金職位。但符合條件的Android工程師屈指可數,在未來幾年內,Android開發工程師將成為3G行業炙手可熱的崗位之一。
『玖』 android系統怎樣實現訪問控制策略
第一類風險是濫用應用程序許可權。關於這類風險有如下防範策略建議。
應用程序認證
認證是防範惡意程序的有效手段之一。在理想狀態下,一個應用程序在認證之前必須經過完整的測試與代碼審查,確認其許可權使用的合理性,這自然對惡意軟體起到了有力的防範作用。但是,認證的費用高昂,程序復雜,並不具備廣泛的實用性。
選擇使用應用程序許可權
如果能夠在安裝階段,確認某一應用程序僅使用必需的最小許可權,也就是遵循最小許可權原則,則受到惡意軟體攻擊的可能性必將大大降低!對於有經驗的用戶這也許是一種選擇,但對於廣大的普通用戶,恐怕沒人懂得如何驗證應用程序要求的許可權是否合理,在多數情況下用戶會直接授予所要求的許可權。因此需要開發者在申請或設定許可權時,嚴格遵循最小許可權原則。
自動靜態分析與代碼驗證
設計一種自動分析應用程序特性的工具,分析應用程序的功能以及不同應用程序之間的差別,以判斷其合法性。
第二類風險是攻擊Linux內核與系統庫函數的漏洞。目前,針對這種風險,採用更嚴格的訪問控制機制,第6章介紹的限制操作系統用戶許可權的SE Android,是一種實際且有效的選擇。最危險的攻擊就是利用系統漏洞獲取根用戶或超級用戶許可權,進而控制整個系統。SE Android恰好通過控制根用戶或超級用戶許可權實現對安全性的增強,即使攻擊者獲取了根用戶許可權,但可能的危害范圍不至於無限擴大。但是,某些系統命令由於正常使用的需要,可能無法完全禁用,攻擊者如果恰好獲得該類命令的使用權,則SE Android的功能就十分有限了。
第三類風險是破壞私有數據的可用性、數據隱私性以及完好性。可以採取以下策略進行防範。
登錄
使用登錄用戶口令解鎖移動設備的某些功能,以防止安全威脅。這是一種常見的有效方式,尤其是用於保護隱私數據信息。但是,當設備遺失時,如果尚未使用口令解鎖設備,則保護作用存在;如果解鎖之後才遺失設備,則口令保護完全無效。
防火牆
防火牆可以保障用戶私有信息不會經由網路連接被泄露。通常,對網路連接傳輸的內容使用無狀態或有狀態的分析,可以發現是否有私密信息正被泄露,因此可以切斷傳輸線路。由於防火牆工作在操作系統內核中,因此無法直接為外部攻擊所侵害。同時防火牆可以與SE Android提供的訪問控制機制協同工作,提供更高級別的保護。但是,惡意軟體並非只能通過網路介面泄露隱私信息。比如,通過簡訊/彩信的發送,防火牆就無作用了。
數據加密
數據加密是保護隱私數據的最佳手段。由於只有信息所有者才有密鑰,因此即使設備失竊,隱私信息的安全仍然得到保障。
上下文敏感的訪問控制(CAAC,Context Aware Access Control)
CAAC可以根據設備使用的內部與周邊環境決定訪問許可權,比如設備使用的地點、所登錄的移動網路、是否連接Wi-Fi等。但是,如果攻擊恰好發生在允許訪問的環境下,則此類方式無效。
遠程管理
從安全形度,遠程管理能力是必須嚴格限制使用的。但是,與防火牆、CAAC機制相結合,遠程管理實際可以提升安全性。例如,設備遺失後,可以通過遠程管理機制開啟防護機制,保護數據安全。即使在日常使用中,遠程管理也可能發現肆虐移動網路的蠕蟲,通過啟動防火牆等機制限制蠕蟲的活動。但是,所有的遠程管理都需要在受到攻擊的過程中,或受到攻擊之前有人為參與,而且需要耗費設備的資源,以及遠程管理的人力資源等,費用不菲。
第四類風險是耗盡系統資源,可以採取如下的防範手段。
資源管理
系統資源管理的安全方案可以進一步降低耗盡系統資源類風險的危害。其機制是公平分配每個應用程序所需的系統資源。當然,可以根據應用程序的重要性與對資源的需求情況加以分配。比如,電話應用程序非常重要,因此需要得到更多的CPU時間。如果CPU時間、存儲空間限額、網路與磁碟輸入輸出限流,則「拒絕服務」類型的攻擊可被避免。但是,高效實現此類機制仍然十分困難,因此應用較少。
入侵檢測/防護系統
基於宿主(host)的入侵檢測系統可以通過資源使用的異常情況,檢測各種耗盡電池、內存與CPU時間的惡意軟體。但是,高級的惡意軟體通常偽裝為正常軟體,不易檢測。
第五類風險是入侵專用網路連接。建議採用如下的防範策略。
虛擬專網(VPN)
虛擬專網使用成熟的信息認證碼與加密,保護通信的安全,可以防止針對網路的攻擊。
遠程管理
一個集中式的遠程管理中心可以增強安全保護能力,但遠程管理中心的人為因素可能成為另類的安全隱患。
上下文敏感的訪問控制(CAAC)
在內網或虛擬專網的環境下,結合CAAC的機制,可以更好地保護數據安全。比如,當檢測到外網環境時,適時啟動數據傳輸加密機制等。
以上均為宏觀上採取的防範策略,就實施細節而言,重要的是開發者需具備基本的安全意識,充分認識到安全性也是軟體開發周期的一個重要環節,編寫安全的代碼是開發者所必須具備的一項職業技能。雖然不可能確保所編寫的代碼100%安全,但也要盡可能地使用戶對Android系統和應用程序放心。
具體而言,無論是系統工程師還是應用工程師,在Android平台上致力於實現功能的同時,應更深入地理解所編寫的應用程序將如何與Android系統或其他應用程序安全地交互;如何安全地存儲數據到SQLite;如何保護用戶數據尤其是敏感數據的安全,避免惡意軟體的攻擊;如何處理有限的內存、電池電量;如何充分理解許可權機制,使用戶清楚應用程序需要哪些許可權。所有的這些都是開發流程中必不可少的部分。
本文節選自《Android安全機制解析與應用實踐》一書。
『拾』 我要開發一個可以控制某個安卓app聯網的程序,要怎麼做
首先控制連接網路的話是分為控制WIFI和控制移動數據兩種方式
1。控制WiFi的話,可以直接使用API來進行判斷打開或關閉
2、控制移動數據的話,官方API從Android5.0以後已經禁止使用強制關閉的方法
3、對於控制移動數據,在沒有root許可權的前提下可以考慮使用VPN的方式來進行實現