kowala's home

kowala's home
這裡是我的學習筆記,陸續增加中。
http://kowala21.blogspot.com

2013-06-17

Android 檔案權限

有時,我們想要修改手機的開機畫面,開機音樂,或是字型,都需要用到檔案,這時就有必要去了解一下它的結構了。本文就是間單的來說明一下 Android 檔案權限。

Android 是架構在 Linux 之上,使用 java 去實作的系統,所以它的檔案系統就是 linux 的檔案系統,要更動就必須要有最高權限 root,所以彷間才會有很多破解 root 的手機,這些原因都是根源於此,如果我們想要修改我們的手機,把廠商植入的一些莫明其妙的服務拿掉,就需要來了解一下 Android 的檔案權限。

先來看看系統 apk 都在哪

# cd system/app
cd system/app
# ls -l
ls -l
-rw-r--r-- root     root       120554 2012-12-20 10:28 CalendarProvider.apk
-rw-r--r-- root     root       761891 2012-12-20 10:24 Email.apk
-rw-r--r-- root     root        52291 2012-12-20 10:24 MediaProvider.apk
-rw-r--r-- root     root        20544 2012-12-20 10:28 StorageMgr.apk
-rw-r--r-- root     root        70488 2012-12-20 10:25 Calculator.apk
-rw-r--r-- root     root         5475 2012-12-20 10:24 ScrCapService.apk
-rw-r--r-- root     root        34586 2012-12-20 10:24 HomeLocation.apk
-rw-r--r-- root     root       115089 2012-12-20 10:29 SystemUpdate.apk
...

就放在  /system/app 之中,各位可以看到,擁有者是 root,如果您想刪掉某個廠商植入的東東,那就進到這裡後,下個移除指令即可。

# rm DeviceRegister.apk
rm DeviceRegister.apk

當然,您必須先取得 root 權限。

開始我們的主題,檔案權限

我們可以看到,每個檔案前面都有 -rw-r--r-- root     root  ....
-rw-r--r-- 是檔案型態(File Type)+3組權限(rwx)組合,擁有人、群組、其他
第一個位元是 File Type,- 代表是檔案
d 是目錄;
- 是檔案;
l 為連結檔 (link file);
b 表示為裝置檔裡面的可供儲存的周邊設備,例如硬碟;
c 表示為裝置檔裡面的序列埠設備,例如鍵盤、滑鼠。

接著是3組權限(rwx)組合

r 代表可讀
w 代表可寫
x 代表可執行
- 代表無權限

上例中
第一組是 rw- ,代表擁有人權限是讀+寫+不可執行
第二組是 r-- ,代表群組權限是讀+不可寫+不可執行
第三組是 r-- ,代表其他權限是讀+不可寫+不可執行

rw-r--r-- 對應數值為 644, 如下表所示
 r w x
-----------
 0 0 0 = 0
 0 0 1 = 1
 0 1 0 = 2
 0 1 1 = 3
 1 0 0 = 4
 1 0 1 = 5
 1 1 0 = 6
 1 1 1 = 7

由右向左,第一個x是2^0,第二個w是2^1,第三個r是2^2
所以,對應值就是 r=4,w=2,x=1
然後看有什麼權限,就把它加起來就是權限值了。

如 755 = 111 101 101 = rwx r-x r-x

同理 sdcard 的權限是 rwxrwxrwx = 111 111 111 = 777
/system 的權限是 rwxr-xr-x = 111 101 101 = 755
/system/media 的權限是 rwxr-xr-x = 111 101 101 = 755
開機畫面 bootanimation.zip 的權限是 rw-r--r-- = 110 100 100 = 644

# ls -l /system/media
ls -l /system/media
-rw-r--r-- root     root       843308 2012-12-17 12:35 boot.wav < 開機音樂
-rw-r--r-- root     root       543788 2012-12-17 12:35 shutdown.wav  < 關機音樂
drwxr-xr-x root     root              2013-06-16 21:06 audio
-rw-r--r-- root     root       415635 2012-12-17 12:35 shutdownanimation.zip < 關機動畫
-rw-rw-rw- root     root      4995540 2013-06-17 01:10 bootanimation.zip < 開機動畫

bootanimation.zip 格式

在裡頭有一個檔 desc.txt是用來設定撥放的一些參數
以我的為例

320 480 30
p 1 0 part0
p 0 0 part1

圖片是 320*480 每秒 30 幅
第一回合 播放1次 間隔0幅 圖檔目錄part0
第二回合 播放無限次 間隔0幅 圖檔目錄part1

請注意:bootanimation.zip 千萬不要壓縮



參考資料
http://linux.vbird.org/linux_basic/0410accountmanager.php
http://www.cyut.edu.tw/~dywang/linuxSystem/node26.html
http://web.nchu.edu.tw/~jlu/cyut/android/animation.shtml

沒有留言:

張貼留言

請提供您的寶貴意見 ;-)