使用adb相關命令,獲取文件的讀寫權限以及修改文件權限

            在用adb 調試時,輸入adb shell進入文件系統,有這樣一個目錄:/system;如果想從/system/framework中讀取一個文件,可以在cmd窗口輸入:

adb pull /system/framework/am.jar /sdcard,運行結果如下:


        查看X盤下,確實存在am.jar文件,這裏就不展示了。

        那如果想向/system中寫入一個a.txt文件呢,於是在cmd窗口輸入:adb push X:\a.txt /system/a.txt,運行結果如下:


        從提示來看push失敗了,Read-only file system表示只有可讀權限。想要向push文件到/system中,需要獲取/system文件的讀寫權限。於是,做如下操作輸入命令:

1: adb root(前提是:手機root了)

2:adb remount,重新掛載系統分區(前提是:adb root)

3:adb shell "mount -o rw,remount /system"

       運行結果如下:


        運行之後,什麼結果也沒有,那就是命令執行正確了。可以在文件系統(adb shell)窗口,再輸入:mount;查看獲取/system的讀寫權限,運行結果如下:


        倒數第4行有這樣的一段命令:/dev/block/mtdblock0 /system yaffs2 rw 0 0 , 說明獲取了/system的讀,寫權限了。若不進行上面操作,輸入mount之後就不是rw,而是ro(read only)。需要注意的是,在手機重啓後,/system文件變爲read only,輸入adb shell-> mount可以驗證,這裏不再展示。接下來cmd窗口中輸入:adb push X:\a.txt /system/a.txt,就可以成功的對/system目錄進行寫操作。

      查看文件的權限,在文件系統(adb shell)中輸入:ls -al   進行查看(後面不再闡述)

      簡單介紹下android的文件訪問權限,先看這樣一張圖,如下:


d:目錄;           -:文件;             l:指向(link)。

後面9位,分爲三組,以drwxr-xr-x爲例進行說明:

d:表示目錄;

rwx:該文件/目錄所在的用戶,也就是該用戶具有的權限:可讀,可寫,可執行;

r-x:與該用戶同組的其他用戶,具有權限:可讀,不可寫,可執行;(linux系統中,用戶會被分在某一個組中)

r-x:與該用戶不同組的其他用戶,具有權限:可讀,不可寫,可執行;

通過drwxr-xr-x,這樣就可以知道system的訪問權限了。


        如何修改一個文件的訪問權限呢?例如上面將a.txt文件push到system目錄下,查看其權限爲:-rw-rw-rw-,在cmd窗口中輸入:adb shell chmod 644 /system/a.txt。查看其文件讀寫權限爲:-rw-r--r-- ,644分別爲上面三組的值,6二進制:110,對應rw-;4二進制:100,對應r--。


       通過上面的學習,若需要向一個目錄執行寫操作,而該目錄是read only,不可寫,那麼可以執行adb shell "mount -o rw,remount /system"獲取目錄的讀寫權限。若需要修改文件的權限,例如上面/system/a.txt的文件權限,可以執行adb shell chmod 644 /system/a.txt (644可以根據需求設置其他值,例如777)修改文件的讀寫權限。

       

        好啦,分享到這裏就結束啦!


發佈了47 篇原創文章 · 獲贊 28 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章