網頁

2013年10月24日 星期四

[D-Link 5020L] Installation

這是一個監控用的攝影機. 我們打算把它先安裝到 Windows 測試. 之後, 會轉移到我們的 Linux 系統.

1. Insert Instalation CD and Auto Run

        先把 CD 放入, 再啟動 auto run. 就出現以下畫面.
 

       
 

        選擇執行 auto run之後, 開始執行.

 
2. mydlink Wizard

        顯示 setup選項. 由於我們並沒有打算連接到 mydlink 雲端服務, 所以也沒有打算安裝 D-ViewCam (我們要用 ZoneMinder). 所以我們會選擇上方的 "設定您的雲端攝影機" 的選項.

 
    
 
3. 設定雲端攝影機歡迎畫面

        開始設定雲端攝影機, 請按開始.

 

4. 條款畫面

        勾選 "我接受這些條款與細則之後", 按下一步.

 

       


 

5. 連接雲端攝影機步驟一

        左邊的進度項目顯示目前的進度是 1. 雲端攝影機
 
        在按下下一步之前, 可以先看看裝置如何連接.

 
 
 
        從這邊我們可以看到, 攝影機和電腦並沒有實體連接. 這之間要用什麼方式來聯繫溝通, 就是我們後續要研究的重點.

        按下下一步, 開始我們的安裝.

 

6. 連接雲端攝影機步驟二

        左邊的進度項目顯示目前的進度是 2. 路由器

        這時我們要準備好網路連線. 我是直接把它對接到電腦上.

 


 

7. 連接雲端攝影機步驟三

        左邊的進度項目顯示目前的進度是 3. 電源轉接器.

       請檢查電源是否已連接. 然後按下一步.

 

 

8. 連接雲端攝影機步驟四

        左邊的進度項目顯示目前的進度是 4. LED.

         請檢查 5020L 前端的 LED 是否如圖顯示. 按下下一步之後, 安裝程式會再 詢問一次, 攝影機的 LED 是否顯示綠燈. 按下""之後, 安裝程式會開始搜尋網路上的攝影機.

 


 

9. 選擇雲端攝影機

        一段時間之後, 安裝程式顯示找到的攝影機. 如附圖.



        按攝影機型號左邊的按紐後, 下一步的按鍵就可以按了. 輸入在管理員密碼之後, 按下下一步.

 

       


 

10. 選擇連線

        密碼儲存完之後, 接下來要選擇連線方式. 目前我們是用有線的方式連接到電腦做設定. 但是使用的時候, 是可以透過無線的方式使用. 無線連線有兩種方式, 使用 "Wi-Fi Protected Setup (WPS)" "選擇無線網路"兩種. 我猜測, "Wi-Fi Protected Setup (WPS)" 其實就是 configure Wi-Fi AP, WPS mode, "選擇無線網路"則是連線到既有的 AP.

 


11. 連線到既有的 AP

         接下來, 我們先試試看 "選擇無線網路", 先點選 "選擇無線網路", 然後在無線網路的選項裡, 找到我們要連線的 AP, 輸入密碼後, 按下一步.
 

       

        設定程式開始儲存網路設定.

 

 

        儲存完畢, 攝影機準備重啟以套用新的設定, 移除網路線, 並點選確定.
 
     

 

        檢查攝影機是否已完成設定, 依實際狀況, 選擇 "".


 

 

        攝影機重啟以套用新的設定.

 

       


 

        此時攝影機會嘗試連線到 mydlink, 不過因為我們並沒註冊 mydlink 的帳號, 所以註冊程序會失敗. 但是無所謂, 因為我們本來就沒有打算用.

 
       


 

        設定完成. 因為沒有網際網路連線, 所以我們只能用 IP 直接連接. 要注意的是, 這時顯示的位址並不是無線網路的位址, 而是先前用有線的方式連接設定的位址. 我是從 AP 去查連線裝置, 找出來的 IP 位址.

       

 

        開啟 IE, 輸入攝影機的連結, 我的攝影機的無線位址是 192.168.1.227, 所以我的連結如下:

        http://192.168.1.227
 
      

 

        IE 要求下載及安裝一個插件, 毫無選擇的同意了. 之後就可以看到 preview 的畫面

 


       

 

 

2013年10月22日 星期二

[Android] Reverse APK 2. apktool

APKTool 是一個用來反組譯/重新編譯 Android APK 的工具. 甚至, 它還可以用來 step by step debug. 有些中文化的方式, 就是用它來解開 APK, 修改字串資料, 再重新打包.

延續前一個作業, 我們的目的是解開這個 APK, 看看能從中看出什麼端倪. 接下來我們就要說明如何對一個 APK 檔案, 實施 apktool 程序.

1. 下載 APKTool


        請參考以下連結, 下載 APKTool. 要注意的是, APKTool 的主體部份是一個 Java jar 檔案, Linux/iOS/Windows 這三個檔案則是它的安裝以及啟動腳本.

        http://code.google.com/p/android-apktool/downloads/list?q=label:Featured

        我的電腦是 Windows, 所以我下載了apktool1.5.2.tar.bz2 以及 apktool-install-windows-r05-ibot.tar.bz2 這兩個檔案. 解壓縮之後, 我把它放到 C:\Personal\Reverse APK\apk-tool, 再加上我們前面備份下來的 apk,  所以這個目錄目前看起來會像是這個樣子.

 



       
 

 

2. 解開 APK


        在開始解開 APK 之前, 有一個小地方要注意. 我們備份下來的 APK 的檔名是含有空白的, apktool.bat 的內容是這樣.

        java -jar "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9

        這樣的參數傳遞會不會有問題呢? 這個其實我不知道, 也不想知道. 我會先把 APK 重新命名, 少一點麻煩.

        接著, 我們在命令列上下這樣的命令, 把它解到 PlayMemories 的目錄

        apktool d PlayMemories.apk PlayMemories

         請參考附圖

 
     

3. APK 檔案內容說明


        這邊說明解開 APK , 常見的檔案副檔名, 和它們的作用.

        1.xml 檔案

        Android 用到很多 xml 的檔案, 但是運用的時機不一樣, 它的內容也不一樣. 只是它們都遵循 xml 的語法

                AndroidManifest.xml
                這是 Android 用來管理 APK 的設定的檔案. 關於這一個 APK 的命名, 需要用到那一版 Android 才能正常使用, 以及使用網路, 存取聯絡人資料, 撥打電話等等的權限.

                layout.xml
                Android 的畫面, 基本是以畫面為基準. layout 類的 xml, 就是用來描述一個畫面中, UI 的元件的大小, 型式, 以及相關位置及排列方式. 一個 layout xml 檔案, 就是一個畫面, 或是較複雜的 UI 的設定.

                value.xml
                Android UI , 所會用的顏色, 數值等等的定義檔.

                string.xml
                Android 的多國語言的定義, 是分別寫在不同的 xml 檔案中. 譬如說, values-en 的目錄中, 有一個strings.xml. 所有英文語系的字串定義, 都會放在這個檔案中. 不同的語言設定, 會用到不同的 strings.xml, 放在不同的目錄中. 它的內容大約會是這個樣子 

     <string name="please_wait">Please wait...</string>
     <string name="select_wifi">Select the device.</string>

        2. smali 檔案


        smali 是一個支援 Android Hex 格式的組譯/反組譯工具. 它的副檔名也叫 smali. 也就是說, APK 解出來的 smali 檔案, 它原本是 java 檔案.

         3. so 檔案


        這是 linux shared library. 用到 C/C++ 的程式的時候, 會把它編譯成 so, 再用 NDK 的方式去引用.
 

        基本上, 觀察解出來的檔案, 再加上對 Android 的一些基本瞭解, 對這個 APP 就可以有一個基本的瞭解了