手機第三方軟件原理

第三方軟件這個詞的含義比較寬泛。本文用它來指代不是硬編碼在手機裏,而是可以通過數據線或網絡下載到手機上,可以裝載、運行,也可以刪除的軟件。
前面講到的手機軟件都是完整程序的各個部分。這些部分會被放到一起編譯,產生一個二進制文件,通過JTAG口(升級時可以用串口)下載到手機的flash中。手機一上電,就會從指定地址開始運行。這個地址的內容就是跳轉到復位處理程序的跳轉指令。哈哈,又講回頭了。
第三方軟件是指手機可以通過數據線或者網絡下載一些可執行文件到文件系統中。然後有一個裝載器可以執行這些文件。這樣第三方就可以開發一些應用程序,下載到手機中來擴充手機功能。
這些可執行文件現在主要有兩種格式:java程序和BREW程序。java程序需要java虛擬機裝載運行。BREW程序是一個很奇怪的東西,它實際就是用與編譯手機程序相同的編譯器編譯出來的目標代碼。這些目標代碼必須是可以重新定位的,即不能包含全局和靜態變量。
裝載器將程序將執行權傳給給BREW程序,一種聽上去更安全的說法是調用BREW程序的入口函數。這個入口函數的位置在文件中是固定的。裝載器在調用 BREW程序的入口函數時會傳入一個地址。通過這個地址,BREW程序能夠順藤摸瓜,找到系統提供的各種API的地址,它通過這些API訪問手機的顯示、 通信等功能。
java程序基本上是平臺無關的,針對各種平臺設計的java虛擬機隔離了平臺的大部分特性,除了廠家特意提供的一些OEM功能。BREW程序顯然是平臺相關,換一個CPU,就不認識原來的目標碼了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章