Android與標準Linux對比

2021-09-21 01:14:34 字數 4559 閱讀 3347

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...