假如手機被人盜竊后,用戶可以遠程開啟托管模式,實時獲取盜竊人的個人信息,包括后臺拍照、短信轉發、通話記錄轉發等,從而達到“以盜治盜”的效果。同時,利用手機的移動性靈活性作為一個移動的監控臺,配上制作的硬件報警系統和外部攝像頭,即可實現對遠方某一區域的實時安全監控。本作品在安卓原生系統的手機上進行了以上功能的真機測試,試驗結果基本達到預期功能指標。
0 引言
近幾年,Android系統的普及十分迅速。2013年第一季度Android操作系統在全球智能手機市場中的占有率已經超過65%,比2012年同期增加了30.3%,然而手機的普及卻帶來了新的問題。據統計,在中國每天都有1千部手機被丟失,而手機丟失后,用戶隱私極易被侵犯。手機的安全問題主要包括2類,即手機防盜與隱私保護的問題。本文提出了一套新型防盜技術的解決方案, 該方案有效解決了這兩個問題。
另一方面,隨著智能手機的迅猛發展與物聯網的興起,智能手機作為物聯網的移動終端前景大好。智能手機可以用來保護家居安全,比如通過手機遠程視頻查看來實現火警安防。這類用手機作為物聯網的移動終端在市面上尚未有成熟完整的解決方案,主要問題是涉及軟硬件結合,實現難度較大。本文也設計了一套小型物聯網,將手機作為移動終端來實時監控家居安全。
1.Android系統概述
Android應用主要包括activities、services、content providers和broadcastreceivers四種組件,考慮到本文核心內容,著重介紹一下activity和broadcastreceivers這兩大組件。
1.1 Activity概述
應用程序中,一個Activity通常就是一個單獨的屏幕,它上面可以顯示一些控件也可以監聽并處理用戶的事件做出響應。Activity之間通過Intent進行通信。在Intent的描述結構中,有兩個最重要的部分:動作和動作對應的數據。典型的動作類型有:MAIN(activity的門戶)、VIEW、PICK、EDIT等。而動作對應的數據則以URI的形式進行表示。例如:要查看一個人的聯系方式,需要創建一個動作類型為VIEW的intent,以及一個表示這個人的URI.通過解析各種intent,當向前導航時,activity將會調用startActivity(Intent myIntent)方法。系統會找到最匹配myIntent的Intent對應的activity.新的activity接收到myIntent的通知后,開始運行。
1.2 BroadcastReceiver廣播接收器
BroadcastReceiver也就是“廣播接收者”的意思,顧名思義,它就是用來接收來自系統和應用中的廣播。在Android系統中,廣播體現在方方面面,例如當開機完成后系統會產生一條廣播,接收到這條廣播就能實現開機啟動服務的功能;當網絡狀態改變時系統會產生一條廣播,接收到這條廣播就能及時地做出提示和保存數據等操作,等等。在onReceive方法內,我們可以獲取隨廣播而來的 Intent中的數據,這非常重要,就像無線電一樣,包含很多有用的信息。Android中的廣播機制設計的非常出色,很多事情原本需v要開發者親自操作的,現在只需等待廣播告知自己就可以了,大大減少了開發的工作量和開發周期。
2.系統設計
在本軟件所設計的防盜系統中,除了市場上流行的防盜功能(如手機定位,換卡通知,響鈴報警等),本文還自行設計了一套新型防盜數據獲取技術,可控制手機進入防盜托管模式,在該模式下,可遠程控制手機進行后臺拍照并將盜竊人照片上傳到郵件,并且實時檢測盜竊人收發的短信和通話記錄,截取短信內容,將短信轉發給指定號碼,同時也可以獲取盜竊人的sim卡信息,達到對盜竊人信息的充分掌握,結合本應用的 GPS手機定位功能可以更加有效的指認盜竊人、找回被盜手機。
為了實現上述檢測防盜系統,我們從手機托管模式檢測、短信截取和電話記錄監聽方面分別進行分析與設計。由于篇幅限制,類似拍照上傳、報警響鈴、GPS定位等功能在市場上比較常見,這里不再贅述。
2.1 防盜托管
2.1.1 防盜托管模式檢測
為實現托管模式,必須先接收正確的指令,并且只有用戶先前指定的安全號碼所發送的指令才能生效,其他號碼都不能遠程控制用戶手機(如圖1所示)。這就需要后臺實時廣播檢測是否有正確的相關指令。和之前提到一樣,系統做任何事都會發出一個廣播,針對本應用的需要,只須在對接收到短信時發出的廣播作出響應,可以自動過濾其他動作,這樣可以給系統節省一筆不小的開支。在Android系統中,接收短信的廣播通知為“android.provider.Telephony.SMS_RECEIVED”。
2.1.2 短信截取和電話記錄監聽轉發
當手機收到一條短信后,軟件會后臺獲取短信內容和來信人號碼,若為安全號碼,則轉向執行判定程序,判定內容是否存在相關指令,若為托管指令,則手機自動進入托管模式,托管模式下的手機會實時檢測手機是否接收或發送短信,并將短信內容和號碼轉發給安全號碼。需要注意的是,短信的所有數據首先需要通過bundle.get(“pdus”)來獲得,并存儲在Object[]數組中。這里Bundle類是一個 keyvalue對,兩個activity之間的通訊可以通過bundle類來實現,做法就是:新建一個bundle類,bundle類中加入數據(key-value的形式,另一個activity里面取數據的時候,就要用到key,找出對應的value),新建一個intent對象,并將該 bundle加入這個intent對象,這里的intent即是定義為系統收發短信的Activity的intent.之后再解析Object數組中的數據,從而提取出短信內容和發信人號碼。
當盜竊人收到來電并進行通話后,應用也會后臺檢測并發送電話記錄給安全號碼。大致實現方法是通過使用broadcast-Receiver來接收指定的電話廣播,并判斷手機通話狀態。安卓平臺開放了三個手機狀態的API,分別是通話,空閑和響鈴,考慮到本應用的需求,只需在通話過程中觸發響應并獲取來電人號碼即可,最后通過短信的方式將其發送給安全號碼。應用后臺檢測并響應短信接收廣播的部分代碼如下:
2.2 遠程視頻監控
手機遠程視頻監控為本作品另一個分支,初步體現了移動物聯網的理念,實現了它的一個雛形。通過安置攝像頭監視環境,硬件傳感器電路感知環境,發現異常立即自動發送短信通知手機遠程視頻查看實時狀況。該部分功能結構流程圖如圖2所示。
2.2.1 外部拓展硬件
遠程視頻監控涉及的硬件包括:一個自行設計制作的可燃氣體燈光報警器,一部帶有光線傳感器的安卓智能手機,一個經過改裝之后的TP-LINK W703N迷你無線路由器,一個普通家用無線路由器,一個網絡攝像頭(這里使用的是天敏S605攝像頭)。
各組件配合完成如下功能:利用可燃氣體燈光報警器感知網絡攝像頭監視的區域,若環境氣體濃度超標則亮強光;在安卓手機中裝入編寫的預制軟件,利用安卓手機自帶的光線傳感器時刻監測報警器燈光的亮度,若超過閾值后則自動發送預制的報警短信給裝有安防精靈的手機端;手機端收到報警短信之后通過應用聯網查看家中的攝像頭監視區域視頻。
2.2.2 感知環境--傳感器電路的制作
報警傳感器電路是由降壓整流,穩壓電路,氣敏傳感元件,比較電路和音響電路等組成。該報警電路在可燃氣體的濃度超過一定濃度時,發出聲、光報警信號,提醒用戶注意。
氣敏傳感元件采用氣敏半導體QM-N5型,由于要求燈絲電壓穩定,故供電電壓經IC2(7805)三端穩壓器穩壓輸出5V的穩定的額定工作電壓。因此電路的工作原理可大致概括為:當可燃氣體濃度才超過一定值時,氣敏半導體器件的A-B極間電阻變小,該電阻與R1的分壓變小。IC3采用的是半個雙電壓比較器LM393,平時,同相端(3腳)的電壓高于反相端(2腳)的電壓(由RP1和R2分壓),電壓比較器輸出低電平(《0.7V),使IC4強迫處于復位狀態。
當由于可燃氣體濃度增加時,導致IC3的3腳電平升高,且高于2腳的基準電壓時,比較器輸出高電平,555置位,由555和R3,R4,C1組成的振蕩器起振,振蕩頻率f=1.44/(R3+2R4)C1,圖3所示參數的頻率約為1KHZ.揚聲器發出1KHZ的音響報警,同時LED發光閃爍。
2.2.3 報警通知--另一部安卓手機的應用
用來處理報警事件。考慮到現今普通的智能手機價格非常大眾化,因此決定棄用復雜的GSM模塊轉而直接使用性價比更高的智能手機(這里稱為手機B,用戶所用的主手機稱為手機A)。要求安裝上我們編寫的專用安卓應用,啟動后在后臺一直運行。這時將手機B裝入暗盒中,只留光線傳感器對準報警器的報警燈。當發現報警燈亮度達到程序設置的光線閾值后,則后臺應用響應事件,立即將預存在程序中的報警短信發送給指定號碼(即手機A),手機A在接收到通知后便可以打開應用查看家中情況。
2.2.4 數據傳輸--路由器的改造設置
改造機理和步驟如下:改裝無線迷你型路由器TP-LINK TL-WR703N.這個路由器比較小巧,方便安裝攜帶。進行一系列改裝改造。包括將一個Linux開源項目OPENWRT系統固件刷入路由器中,把普通的無線路由器通過刷入開源的Openwrt系統,使之成為一個運行了Linux系統的小電腦。圖4為WR703N的拆機圖:
路由器上也需編寫一套程序,目的是把USB攝像頭的視頻進行編碼,然后通過WIFI返回傳給上位機。同時路由一般都預留有TTL串口,TTL串口是用來調試或者刷機用的,我們把這個TTL串口引出來將我們編寫的程序刷入路由器中。
通過在家庭無線路由器里增設一個端口訪問映射并設置與WR703N的級聯Client模式,讓家庭無線路由器作為WR703N迷你路由的上位機。使得當外界訪問家庭路由器指定的視頻傳輸端口時就會轉發到WR703N中,由路由器提供回傳攝像頭拍攝的數據。圖5為視頻監控所需所有硬件設備。
圖中右上角為改造之后的WR703N路由器,左下角為自行制作的可燃氣體報警器電路(含有兩個LED,紅色為電源指示燈,綠色為報警指示燈)。
右下角為帶有光線傳感器的安卓手機(手機B),手機下面是一個挖了孔的紙盒(用作手機暗箱)左上角為天敏S605網絡攝像頭。
3.系統測試
3.1 防盜托管模式
在托管模式下,用另外一部手機發送短信給被盜手機,被盜手機會自動將所收短信轉發給安全號碼,并且刪除在發件箱中所發的短信,使盜竊者難以察覺自己已被監控。用被盜手機撥打或接聽電話,被盜手機也會后臺發送電話記錄給安全號碼,真正實現了對盜竊者個人信息與日常行蹤的掌控。
3.2 視頻監控部分
圖6中已將安卓手機B放入紙盒暗箱中,報警指示燈插入紙盒暗箱孔內。此時接通電源,在可燃氣體傳感器附近點燃打火機。一會兒手機A(也就是用戶用的主手機)就會收到一條來自紙盒暗箱內手機發來的報警短信,打開應用啟動遠程視頻即可查看家中情況(如圖7)。
4.結論
本文探討了Android的發展情形與當前熱點問題,并提出了一套解決方案,與現今市場上的熱門應用相比,本作品創新如下:
(1)開發出一套獨特的防盜托管模式,在手機被盜后可以獲取盜竊人與外界的聯系與行蹤,實時掌握盜竊人的最新動態,達到“以盜治盜”的效果,這與市場上大量安全軟件如360衛士、安全管家等相比,本功能是開創性的。
(2)實現了基于Android手機的物聯網雛形,結合硬件電路與路由器完成了對家中火災的監控,彌補了市場上利用手機移動終端來監控家居安全的這方面缺陷。
評論
查看更多