android檔案系統與linux檔案系統層次結構標準(fhs)對比:
fhs
android
/tmp
/data/local/tmp
/bin
/system/bin
/etc
/etc -> /system/etc
/lib
/system/lib
/var
無,可用/data/local/tmp代替先
/sys
/sys
/proc
/proc
/mnt
/mnt
/media
無,可用/mnt代替
/root
無,無可替代
/sbin
/sbin
一般的linux程式都是按照fhs來的,如果要直接編譯到android中用,一些目錄就要按照上邊對應的改。
android底層功能與標準linux對比:
功能linux
android
管理動態裝置檔案
udev/mdev
ueventd(init) [好文章]
管理動態儲存掛載
udev/mdev
vold
管理靜態儲存掛載
fstab
vold
向上層報告
無vold
init程序
init/linuxrc
init
圖形介面
x windows/qt/minigui
gralloc+su***ceflinger/minui
藍芽驅動
bluz
bluedroid《android 4.2藍芽介紹-android中的bluetooth》
音訊庫libalsa
tinyalso《android音訊系統之音訊框架-tinyalsa》
遇到一些記錄一些。弄明白了這些,從底層向android出發就方便多了。
很多文章都在說它代替了udev,這個真是乙個不負責人的說法,vold全稱volume daemon,顧名思義,它是管理卷的,所謂卷也就是硬碟/flash/sdcard之類的儲存裝置,它負責將上述的儲存裝置自動掛載到指定目錄。
在android中與udev相提並論的是ueventd,它是管理/dev/下裝置檔案的。
而vold只會檢測是否為儲存裝置,如果是就會掛載。
---------------------------------------
udev的工作中包括管理/dev下裝置檔案和自動掛載檔案系統,不過vold全稱是volume daemon專門的卷管理,它是沒有管理/dev下的裝置檔案的,這個功勞不是它的,建立裝置檔案的是ueventd。
在android中不能和其它linux進行一對一的對應了,因為vold甚至還包括和上層的通訊,而udev沒有,管理好裝置檔案和掛載動態的儲存裝置就完了。還有乙個區別是vold是管理了所有的卷無論靜態還是動態,而udev只管理動態的,管理靜態的是fstab。
關於/tmp目錄的問題,這個是最直接的問題了,一般的開源軟體都是直接用hardcode的方法預設將臨時檔案放到/tmp目錄中的,這點一定要注意,編譯乙個開源的軟體到android上時首先建立乙個/tmp目錄。沒有/tmp目錄會出現很多問題。等到測試好發布的時候要把hardcode的/tmp目錄調整到自己新建立的目錄一般在/data/misc/$/tmp一般$為自己的功能的名字。
/cts 相容性測試套件
/kernel 核心
/cache分割槽
使用:在進行ota公升級(俗稱:刷機)的時候會用到/cache/recovery目錄
1.利用/cache/recovery/command會傳遞引數.如:update.zip的路徑.
2.公升級過程產生的log檔案也會放到/cache/recovery目錄中.如:last_install,last_locale,last_log,一般供除錯人員使用.
3.當然/cache目錄也可以存放update.zip包.
這些是我在工作中遇到的.
完整包公升級:
將以下內容寫入到/cache/recovery/command
boot-recovery
--update_package=/data/media/0/update.zip
--wipe_cache
reboot
執行reboot recovery 即可公升級.
android檔案系統與linux檔案系統層次結構標準(fhs)對比:
fhs
android
/tmp
/data/local/tmp
/bin
/system/bin
/etc
/etc -> /system/etc
/lib
/system/lib
/var
無,可用/data/local/tmp代替先
/sys
/sys
/proc
/proc
/mnt
/mnt
/media
無,可用/mnt代替
/root
無,無可替代
/sbin
/sbin
一般的linux程式都是按照fhs來的,如果要直接編譯到android中用,一些目錄就要按照上邊對應的改。
android底層功能與標準linux對比:
功能linux
android
管理動態裝置檔案
udev/mdev
ueventd(init) [好文章]
管理動態儲存掛載
udev/mdev
vold
管理靜態儲存掛載
fstab
vold
向上層報告
無vold
init程序
init/linuxrc
init
圖形介面
x windows/qt/minigui
gralloc+su***ceflinger/minui
藍芽驅動
bluz
bluedroid《android 4.2藍芽介紹-android中的bluetooth》
音訊庫libalsa
tinyalso《android音訊系統之音訊框架-tinyalsa》
遇到一些記錄一些。弄明白了這些,從底層向android出發就方便多了。
很多文章都在說它代替了udev,這個真是乙個不負責人的說法,vold全稱volume daemon,顧名思義,它是管理卷的,所謂卷也就是硬碟/flash/sdcard之類的儲存裝置,它負責將上述的儲存裝置自動掛載到指定目錄。
在android中與udev相提並論的是ueventd,它是管理/dev/下裝置檔案的。
而vold只會檢測是否為儲存裝置,如果是就會掛載。
---------------------------------------
udev的工作中包括管理/dev下裝置檔案和自動掛載檔案系統,不過vold全稱是volume daemon專門的卷管理,它是沒有管理/dev下的裝置檔案的,這個功勞不是它的,建立裝置檔案的是ueventd。
在android中不能和其它linux進行一對一的對應了,因為vold甚至還包括和上層的通訊,而udev沒有,管理好裝置檔案和掛載動態的儲存裝置就完了。還有乙個區別是vold是管理了所有的卷無論靜態還是動態,而udev只管理動態的,管理靜態的是fstab。
關於/tmp目錄的問題,這個是最直接的問題了,一般的開源軟體都是直接用hardcode的方法預設將臨時檔案放到/tmp目錄中的,這點一定要注意,編譯乙個開源的軟體到android上時首先建立乙個/tmp目錄。沒有/tmp目錄會出現很多問題。等到測試好發布的時候要把hardcode的/tmp目錄調整到自己新建立的目錄一般在/data/misc/$/tmp一般$為自己的功能的名字。
/cts 相容性測試套件
/kernel 核心
/cache分割槽
使用:在進行ota公升級(俗稱:刷機)的時候會用到/cache/recovery目錄
1.利用/cache/recovery/command會傳遞引數.如:update.zip的路徑.
2.公升級過程產生的log檔案也會放到/cache/recovery目錄中.如:last_install,last_locale,last_log,一般供除錯人員使用.
3.當然/cache目錄也可以存放update.zip包.
這些是我在工作中遇到的.
完整包公升級:
將以下內容寫入到/cache/recovery/command
boot-recovery
--update_package=/data/media/0/update.zip
--wipe_cache
reboot
執行reboot recovery 即可公升級.
Linux與Android安全差異
我們都知道linux的安全性是公認的,而安卓也是基於linux核心開發的,但是兩者的安全性卻相差很大,那這是為何?1 安卓不是linux 不過就算linux核心版,也出現過嚴重的安全漏洞。2009年,該漏洞出現在linux2.6.31 1c3版本,允許非授權使用者在含有漏洞的系統上執行惡意 甚至引起...
android 標準OTA公升級流程
標準的ota公升級流程包括一下幾個步驟 3.裝置會重啟進入recovery模式,同時啟動recovery分割槽下執行環境,不再啟動boot分割槽下的執行環境。4.recovery執行環境初始化時會啟動recovery二進位制程式並根據 cache recovery command中的命令對更新包進行...
標準輸入與標準輸出
輸入cat 命令時,他會從stdin 對通斷介面來說,標準輸入就是鍵盤 接受輸入,cat testfile 現在cat命令會用testfile檔案中的行為作為輸入,可以使用這種技術將資料輸入到任何能從stdin接受資料的shell命令 stdout 在終端介面上,標準輸出就是終端顯示器。ls l t...