發表文章

目前顯示的是 2015的文章

Rooting Your Device

圖片
Root : 系統超級使用者帳戶(System super user account),在UNIX-based的系統裡擁有對檔案及程序完整的控制權。 Rooting : 通常是指在Android裝置上取得超級使用者權限的過程。 Root之後有哪些優點呢? 1.解除安裝OEM預載的應用程式 2.修改外觀,客製化主題,開機動畫... 3.完整的備份和重製 4.進入被限制的目錄,修改或存取甚至執行被限制的檔案或是程式 5.等等......(自行想像) 當然,台語說「有一好,就沒倆好」,有優點自然就會有缺點,在你決定root你的手機之前,一定要先清楚明白非常了解root之後可能帶來的風險! 第一: Android系統的底層雖然是Linux, 但是Android原生的版本是沒有搭配"su"這個指令的, 也就是說在  /system/bin/ 或是 /system/xbin/ 目錄底下, 是找不到su這個指令檔的。那 下圖所示為已經root的手機,才會有su這個指令檔 。 由此可知,沒有root之前,任何人都沒有辦法修改系統裡的設定,我認為這是Google當初設計的一個保護措施,所以當你的手機root之後,萬一被植入惡意程式或駭客入侵,不但隱私資料受到威脅,入侵者更可以利用root權限更進一步的破壞整個系統! 第二: 延續上一段,網路上不管是哪一種root方法,裡面所提供的su指令檔,幾乎都沒有辦法設定密碼!(目前沒看過可以設定密碼的)這樣一來就等於少了一道破解關卡,這讓手機本身更加不安全。 當然,如果可以妥善利用root權限去修改系統,是有可能讓Android變得安全,但是泰勞還不知道要如何修改才能減少被入侵的機會,持續研究中...zzz 接下來泰勞介紹一個我個人最喜歡的root方法,就是一般透過網路進行系統更新時走的路- OTA (Over the air) ,當你收到系統更新通知時,會先下載一個更新zip檔,通常就是存在sdcard裡面,然後從開機進行安裝,只是OTA通常不會讓你看到安裝過程的畫面,下次看到系統更新通知時,記得下載完別直接按重開機,先去sdcard找找看有沒有可疑的zip檔喔! 使用此方法最重要的要求,就是手機本身要支援外接SD卡。 然後去下載我個人比較信任的" ...

Android - Unlock & Root & Flash

圖片
如果有稍微研究過Android的朋友,應該會聽過「解鎖」,「Rooting」和「刷機」這三個名稱,泰勞在這邊簡單的介紹這些名詞。 Unlock: 一般會稱為解鎖,手機製造商通常會因為保固的問題, 為了防止使用者隨意修改韌體或軟體內容導致毀損, 而針對Bootloader「上鎖」,通常都需要依照廠商 制定的 一些步驟來解鎖,而且一般解鎖之後都會失去保固!! 解鎖之後可以進入Download模式,透過fastboot指令進行刷機或是進入Recovery模式進行root, wipe等等的活動,下圖是Nexus7的Recovery模式。 許多裝置,包括Nexus系列,為了保護個人隱私資料,會有一個機制,就是解鎖之後會自動將userdata和cache這兩個磁區格式化,為了避免一些駭客手法,所以特別提醒大家解鎖之前一定要先做好資料的備份。 Rooting: 取得超級使用者權限的過程,如果有使用過Linux的朋友應該對root不陌生,簡單的說,root擁有整個系統的最高權限,搭配的指令就是"su"。 下圖範例使用adb shell進入Android裝置,在根目錄底下的data資料夾只有root權限才可以查閱內容,所以在下su指令之前會出現"Permission denied"的錯誤訊息。 網路上有非常多關於root的方法,例如:一鍵root,root大師,甚至有免解鎖root!就我對Android的了解,免解鎖root有很高的機率是利用系統漏洞獲取最高權限,因為一般來說root或是刷機之前,都必須要先解鎖!因此個人是不建議使用那些工具,主要原因是這些工具沒有開放源始碼,不知道它在root的過程當中,到底做了哪些事! Flash ROM: 中文翻譯就是所謂的「刷機」,刷機其實有點像電腦上的「重灌」,但不完全一樣,在Android裡你可以針對你想改變的磁區做刷機的動作。 下圖是從Google官網下載的AOSP,經過長時間編譯完成的內容。紅色為解鎖之後可以自行刷機的磁區,綠色我不確定可不可以刷(研究中)。 刷機的方法很簡單,第一個步驟就是先解鎖!然後透過USB連線,進入Download模式(就是bootloader裡的fastboot),再執行下列指令: $ fastboot devices...

什麼是 Bootloader?

圖片
如果你身邊有搭載Android作業系統的裝置,不妨試試看將手機「快速開機」選項取消,然後關機 同時按下「音量鍵下」+「開機」按鈕,就會出現Android系統的「Bootloader」囉!下圖是我的行動裝置(HTC E8)的Bootloader。 那Bootloader到底是什麼呢?根據Android Hacker's Handbook (Drake, J. J., Fora, P. O., Lanier, Z., et al. (2014). Android Hacker’s Handbook. Wiley.) 這本書的解釋,如下所示。 Bootloader: Stores the phone's boot loader program, which takes care of initializing the hardware when the phone boots, booting the Android kernel, and implememting alternative boot modes such as download mode.   Bootloader是一個當裝置首次開啟時,專門用於hardware-specific的程序,其目的為初始化裝置,提供最小化的裝置設定介面,然後尋找和開啟作業系統。簡單的說,就是初始化硬體設定,和選擇要進入的模式(例如:Recovery mode,download mode或直接載入Android kernel)。 在Android作業系統,只要你一按下開機鍵的瞬間,第一個跑的程式, 就是Bootloader!下圖是Android正常的開機流程。 就我的理解和認知,Android裡的Bootloader,就相當於Linux裡的grub,就是所謂的啟動載入程式。 並不是電腦裡裝在主機板上的BIOS,仔細想一想就能了解。BIOS可以自行針對硬體設備更改設定,Bootloader只能選擇要啟動的程式,和針對軟體做更改。 通常,OEM都會將Bootloader上鎖,為什麼呢? 主要原因是: 當你從Bootloader進入Download模式下,透過fastboot指令或是一些工具就可以對手機進行刷機(Flash)的動作!在Google Nexus系列的裝置上,只...