當前位置:首頁 » 安卓系統 » android用戶用戶組

android用戶用戶組

發布時間: 2022-06-01 10:28:22

Ⅰ Android的許可權都有哪些

區分apk運行時的擁有的許可權與在文件系統上被訪問(讀寫執行)的許可權兩個概念。
apk程序是運行在虛擬機上的,對應的是Android獨特的許可權機制,只有體現到文件系統上時才使用linux的許可權設置。
(一)linux文件系統上的許可權
-rwxr-x--x system system 4156 2010-04-30 16:13 test.apk
代表的是相應的用戶/用戶組及其他人對此文件的訪問許可權,與此文件運行起來具有的許可權完全不相關。
比如上面的例子只能說明system用戶擁有對此文件的讀寫執行許可權;system組的用戶對此文件擁有讀、執行許可權;其他人對此文件只具有執行許可權。
而test.apk運行起來後可以干哪些事情,跟這個就不相關了。
千萬不要看apk文件系統上屬於system/system用戶及用戶組,或者root/root用戶及用戶組,就認為apk具有system或root許可權
(二)Android的許可權規則
(1)Android中的apk必須簽名
這種簽名不是基於權威證書的,不會決定某個應用允不允許安裝,而是一種自簽名證書。
重要的是,android系統有的許可權是基於簽名的。比如:system等級的許可權有專門對應的簽名,簽名不對,許可權也就獲取不到。
默認生成的APK文件是debug簽名的。
獲取system許可權時用到的簽名,見:如何使Android應用程序獲取系統許可權
(2)基於UserID的進程級別的安全機制
大家都知道,進程有獨立的地址空間,進程與進程間默認是不能互相訪問的,是一種很可靠的保護機制。
Android通過為每一個安裝在設備上的包(apk)分配唯一的linux userID來實現,名稱為"app_"加一個數字,比如app_43
不同的UserID,運行在不同的進程,所以apk之間默認便不能相互訪問。
Android提供了如下的一種機制,可以使兩個apk打破前面講的這種壁壘。
在AndroidManifest.xml中利用sharedUserId屬性給不同的package分配相同的userID,通過這樣做,兩個package可以被當做同一個程序,
系統會分配給兩個程序相同的UserID。當然,基於安全考慮,兩個package需要有相同的簽名,否則沒有驗證也就沒有意義了。
(這里補充一點:並不是說分配了同樣的UserID,兩程序就運行在同一進程, 下面為PS指令摘取的,
顯然,system、app_2分別對應的兩個進程的PID都不同,不知Android到底是怎樣實現它的機制的)
User PID PPID
system 953 883 187340 55052 ffffffff afe0cbcc S system_server
app_2 1072 883 100264 19564 ffffffff afe0dcc4 S com.android.inputmethod.
system 1083 883 111808 23192 ffffffff afe0dcc4 S android.process.omsservi
app_2 1088 883 156464 45720 ffffffff afe0dcc4 S android.process.acore
(3)默認apk生成的數據對外是不可見的
實現方法是:Android會為程序存儲的數據分配該程序的UserID。
藉助於Linux嚴格的文件系統訪問許可權,便實現了apk之間不能相互訪問似有數據的機制。
例:我的應用創建的一個文件,默認許可權如下,可以看到只有UserID為app_21的程序才能讀寫該文件。
-rw------- app_21 app_21 87650 2000-01-01 09:48 test.txt
如何對外開放?
<1> 使用MODE_WORLD_READABLE and/or MODE_WORLD_WRITEABLE 標記。
When creating a new file with getSharedPreferences(String, int), openFileOutput(String, int), or openOrCreateDatabase(String, int, SQLiteDatabase.CursorFactory), you can use the MODE_WORLD_READABLE and/or MODE_WORLD_WRITEABLE flags to allow any other package to read/write the file. When setting these flags, the file is still owned by your application, but its global read and/or write permissions have been set appropriately so any other application can see it.
(4)AndroidManifest.xml中的顯式許可權聲明
Android默認應用是沒有任何許可權去操作其他應用或系統相關特性的,應用在進行某些操作時都需要顯式地去申請相應的許可權。
一般以下動作時都需要申請相應的許可權:
A particular permission may be enforced at a number of places ring your program's operation:
At the time of a call into the system, to prevent an application from executing certain functions.
When starting an activity, to prevent applications from launching activities of other applications.
Both sending and receiving broadcasts, to control who can receive your broadcast or who can send a broadcast to you.
When accessing and operating on a content provider.
Binding or starting a service.
在應用安裝的時候,package installer會檢測該應用請求的許可權,根據該應用的簽名或者提示用戶來分配相應的許可權。
在程序運行期間是不檢測許可權的。如果安裝時許可權獲取失敗,那執行就會出錯,不會提示用戶許可權不夠。
大多數情況下,許可權不足導致的失敗會引發一個 SecurityException, 會在系統log(system log)中有相關記錄。
(5)許可權繼承/UserID繼承
當我們遇到apk許可權不足時,我們有時會考慮寫一個linux程序,然後由apk調用它去完成某個它沒有許可權完成的事情,很遺憾,這種方法是行不通的。
前面講過,android許可權是經營在進程層面的,也就是說一個apk應用啟動的子進程的許可權不可能超越其父進程的許可權(即apk的許可權),
即使單獨運行某個應用有許可權做某事,但如果它是由一個apk調用的,那許可權就會被限制。
實際上,android是通過給子進程分配父進程的UserID實現這一機制的。
(三)常見許可權不足問題分析
首先要知道,普通apk程序是運行在非root、非system層級的,也就是說看要訪問的文件的許可權時,看的是最後三位。
另外,通過system/app安裝的apk的許可權一般比直接安裝或adb install安裝的apk的許可權要高一些。
言歸正傳,運行一個android應用程序過程中遇到許可權不足,一般分為兩種情況:
(1)Log中可明顯看到許可權不足的提示。
此種情況一般是AndroidManifest.xml中缺少相應的許可權設置,好好查找一番許可權列表,應該就可解決,是最易處理的情況。
有時許可權都加上了,但還是報許可權不足,是什麼情況呢?
Android系統有一些API及許可權是需要apk具有一定的等級才能運行的。
比如 SystemClock.setCurrentTimeMillis()修改系統時間,WRITE_SECURE_SETTINGS許可權好像都是需要有system級的許可權才行。
也就是說UserID是system.
(2)Log里沒有報許可權不足,而是一些其他Exception的提示,這也有可能是許可權不足造成的。
比如:我們常會想讀/寫一個配置文件或其他一些不是自己創建的文件,常會報java.io.FileNotFoundException錯誤。
系統認為比較重要的文件一般許可權設置的也會比較嚴格,特別是一些很重要的(配置)文件或目錄。

-r--r----- bluetooth bluetooth 935 2010-07-09 20:21 dbus.conf
drwxrwx--x system system 2010-07-07 02:05 data
dbus.conf好像是藍牙的配置文件,從許可權上來看,根本就不可能改動,非bluetooth用戶連讀的權利都沒有。
/data目錄下存的是所有程序的私有數據,默認情況下android是不允許普通apk訪問/data目錄下內容的,通過data目錄的許可權設置可知,其他用戶沒有讀的許可權。
所以adb普通許可權下在data目錄下敲ls命令,會得到opendir failed, Permission denied的錯誤,通過代碼file.listfiles()也無法獲得data目錄下的內容。
上面兩種情況,一般都需要提升apk的許可權,目前我所知的apk能提升到的許可權就是system(具體方法見:如何使Android應用程序獲取系統許可權),

Ⅱ 安卓開發 所有者 用戶組問題

可以用SharedPreferences提供全局讀。

Ⅲ 常用android圖形用戶界面組件有哪些怎樣創建

常用的有
TextView EditText Button ImageView Dialog ListView GridView
以及用來包含這些的Layout
常用的Layout有LinearLayout RelativeLayout FrameLayout
單純的創建一般都是採用new XXX(context);這樣的方式,或是在xml里進行配置
<Button
android:width = "match_parent"

android:height="wrap_content"

/>
多看一些android的視頻和sdk中自帶的apiDemo會更容易理解

Ⅳ 怎樣修改安卓手機文件許可權,所有者和用戶組

1.首先在內存卡中選中該文件,選擇移動
2.進入到system文件夾內,在右上角選擇「載入為讀寫」,粘貼該文件
3.選中該文件,在彈出的菜單中,選擇屬性,查看該文件當前的屬性,如下圖所示,很顯然,和系統文件的許可權、所有者和用戶組不同,需要進行下面的修改。
4.長按該文件,在彈出的菜單中選中「許可權」
5.在打開的許可權頁,即可看到該文件當前的許可權
6.修改其中的讀寫框,修改為和系統文件的許可權相同,確定
7.長安該文件,在彈出的菜單中選中「更改所有者」
8.在彈出的頁面中,即可看到該文件所屬的所有者和用戶組
9.分別在所有者和用戶組的下拉菜單中選擇為0-root
10.長按該文件,查看該文件的屬性,即可看到該文件修改後的許可權、所有者和用戶組,此時,已和系統文件的屬性相同了。

Ⅳ 安卓 所有者 用戶組 0 - root 1000 - system

所有者擁有最大的許可權,但對於部分文件,所有者與用戶組許可權相同。大多數系統文件不允許用戶組寫入。
對於所有者 用戶組 0 - root 1000 - system的文件來說,一般不取得root許可權是不能進行更改所有者/用戶組的。
二者關系不同,所有者用戶組指的是擁有權力的單位/系統,rw-r--r指具體許可權(用戶組只可讀取不可寫入),對應於本用戶-所在組-其他人的許可權。對於0 - root 1000 - system不能進行修改。

Ⅵ 安卓手機設置裡面的「用戶和賬戶」是幹啥的

用戶與賬號就是你的手機號和用戶名現在手機都跟電腦一樣可以設置一個用戶名和密碼登錄賬戶改密碼或者掛失可以防止手機丟失以後被壞人利用。

安卓(Android)是一種基於Linux內核(不包含GNU組件)的自由及開放源代碼的操作系統。主要使用於移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。

Android操作系統最初由Andy Rubin開發,主要支持手機。2005年8月由Google收購注資。2007年11月,Google與84家硬體製造商、軟體開發商及電信營運商組建開放手機聯盟共同研發改良Android系統。隨後Google以Apache開源許可證的授權方式,發布了Android的源代碼。

Android一詞的本義指「機器人」,同時也是Google於2007年11月5日宣布的基於Linux平台的開源手機操作系統的名稱,該平台由操作系統、中間件、用戶界面和應用軟體組成。

Android一詞最早出現於法國作家利爾亞當(Auguste Villiers de l'IsleAdam)在1886年發表的科幻小說《未來夏娃》(L'èvefuture)中。他將外表像人的機器起名為Android。

Ⅶ Android 的許可權管理是怎麼實現的

根據用戶的使用過程體驗,可以將 Android 涉及的許可權大致分為如下三類:

(1)Android 手機所有者許可權:自用戶購買 Android 手機後,用戶不需要輸入任何密碼,就具有安裝一般應用軟體、使用應用程序等的許可權;

(2)Android root 許可權:該許可權為 Android 系統的最高許可權,可以對所有系統中文件、數據進行任意操作。出廠時默認沒有該許可權,需要使用 z4Root 等軟體進行獲取,然而,並不鼓勵進行此操作,因為可能由此使用戶失去手機原廠保修的權益。同樣,如果將 Android 手機進行 root 許可權提升,則此後用戶不需要輸入任何密碼,都將能以 Android root 許可權來使用手機。

(3)Android 應用程序許可權:Android 提供了豐富的 SDK(Software development kit),開發人員可以根據其開發 Android 中的應用程序。而應用程序對 Android 系統資源的訪問需要有相應的訪問許可權,這個許可權就稱為 Android 應用程序許可權,它在應用程序設計時設定,在 Android 系統中初次安裝時即生效。值得注意的是:如果應用程序設計的許可權大於 Android 手機所有者許可權,則該應用程序無法運行。如:沒有獲取 Android root 許可權的手機無法運行 Root Explorer,因為運行該應用程序需要 Android root 許可權。


Android 系統許可權定義

Android 系統在 /system/core/private/android_filesystem_config.h 頭文件中對 Android 用戶 / 用戶組作了如下定義,且許可權均基於該用戶 / 用戶組設置。

在 Android 系統中,上述用戶 / 用戶組對文件的訪問遵循 Linux 系統的訪問控制原則,即根據長度為 10 個字元的許可權控制符來決定用戶 / 用戶組對文件的訪問許可權。該控制符的格式遵循下列規則:

第 1 個字元:表示一種特殊的文件類型。其中字元可為 d( 表示該文件是一個目錄 )、b( 表示該文件是一個系統設備,使用塊輸入 / 輸出與外界交互,通常為一個磁碟 )、c( 表示該文件是一個系統設備,使用連續的字元輸入 / 輸出與外界交互,如串口和聲音設備 ),「.」表示該文件是一個普通文件,沒有特殊屬性。

2 ~ 4 個字元:用來確定文件的用戶 (user) 許可權;

5 ~ 7 個字元:用來確定文件的組 (group) 許可權;

8 ~ 10 個字元:用來確定文件的其它用戶 (other user,既不是文件所有者,也不是組成員的用戶 ) 的許可權。

第 2、5、8 個字元是用來控制文件的讀許可權的,該位字元為 r 表示允許用戶、組成員或其它人可從該文件中讀取數據。短線「-」則表示不允許該成員讀取數據。

第 3、6、9 位的字元控制文件的寫許可權,該位若為 w 表示允許寫,若為「-」表示不允許寫。

第 4、7、10 位的字元用來控制文件的製造許可權,該位若為 x 表示允許執行,若為「-」表示不允許執行。

舉個例子,「drwxrwxr--2 rootroot40962 月 11 10:36 lu」表示的訪問控制許可權(黑色字體標明)為:因為 lu 的第 1 個位置的字元是 d,所以由此知道 lu 是一個目錄。第 2 至 4 位置上的屬性是 rwx,表示用戶 root 擁有許可權列表顯示 lu 中所有的文件、創建新文件或者刪除 lu 中現有的文件,或者將 lu 作為當前工作目錄。第 5 至 7 個位置上的許可權是 rwx,表示 root 組的成員擁有和 root 一樣的許可權。第 8 至 10 位上的許可權僅是 r--,表示不是 root 的用戶及不屬於 root 組的成員只有對 lu 目錄列表的許可權。這些用戶不能創建或者刪除 lu 中的文件、執行 junk 中的可執行文件,或者將 junk 作為他們的當前工作目錄。


Android 應用程序許可權申請

每個應用程序的 APK 包裡面都包含有一個 AndroidMainifest.xml 文件,該文件除了羅列應用程序運行時庫、運行依賴關系等之外,還會詳細地羅列出該應用程序所需的系統訪問。程序員在進行應用軟體開發時,需要通過設置該文件的 uses-permission 欄位來顯式地向 Android 系統申請訪問許可權。

安卓系統開發者許可權不足

Android系統是運行在Linux內核上的,Android與Linux分別有自己的一套嚴格的安全及許可權機制,很多像我這樣的新手,尤其是習慣了windows低安全限制的用戶,很容易在這方面弄混淆,下面是我總結的Android系統許可權相關的內容,作為這段時間對and roid許可權學習的總結,也希望能對大家有所幫助,不正確之處請指出。

首先分清兩個概念:要區分apk運行時的擁有的許可權與在文件系統上被訪問(讀寫執行)的許可權兩個概念,apk程序是運行在虛擬機上的,對應的是Android獨特的許可權機制,只有體現到文件系統上時才使用linux的許可權設置。

(一)linux文件系統上的許可權-rwxr-x--x system system 4156 2010-04-30 16:13 test.apk代表的是相應的用戶/用戶組及其他人對此文件的訪問許可權,與此文件運行起來具有的許可權完全不相關。比如上面的例子只能說明system用戶擁有對此文件的讀寫執行許可權;system組的用戶對此文件擁有讀、執行許可權;其他人對此文件只具有執行許可權。而test.apk運行起來後可以干哪些事情,跟這個就不相關了。

千萬不要看apk文件系統上屬於system/system用戶及用戶組,或者root/root用戶及用戶組,就認為apk具有system或root許可權。

(二)Android的許可權規則

(1)Android中的apk必須簽名這種簽名不是基於權威證書的,不會決定某個應用允不允許安裝,而是一種自簽名證書。重要的是,android系統有的許可權是基於簽名的。比如:system等級的許可權有專門對應的簽名,簽名不對,許可權也就獲取不到。默認生成的APK文件是debug簽名的。獲取system許可權時用到的簽名,見:如何使Android應用程序獲取系統許可權

(2)基於UserID的進程級別的安全機制大家都知道,進程有獨立的地址空間,進程與進程間默認是不能互相訪問的,是一種很可靠的保護機制。Android通過為每一個安裝在設備上的包(apk)分配唯一的linux userID來實現,名稱為"app_"加一個數字,比如app_43不同的UserID,運行在不同的進程,所以apk之間默認便不能相互訪問。Android提供了如下的一種機制,可以使兩個apk打破前面講的這種壁壘。在AndroidManifest.xml中利用sharedUserId屬性給不同的package分配相同的userID,通過這樣做,兩個package可以被當做同一個程序。

系統會分配給兩個程序相同的UserID。當然,基於安全考慮,兩個package需要有相同的簽名,否則沒有驗證也就沒有意義了。(這里補充一點:並不是說分配了同樣的UserID,兩程序就運行在同一進程, 下面為PS指令摘取的,顯然,system、app_2分別對應的兩個進程的PID都不同,不知Android到底是怎樣實現它的機制的)
(3)默認apk生成的數據對外是不可見的實現方法是:Android會為程序存儲的數據分配該程序的UserID。藉助於Linux嚴格的文件系統訪問許可權,便實現了apk之間不能相互訪問似有數據的機制。例:我的應用創建的一個文件,默認許可權如下,可以看到只有UserID為app_21的程序才能讀寫該文件

<1> 使用MODE_WORLD_READABLE and/or MODE_WORLD_WRITEABLE 標記。
(4)AndroidManifest.xml中的顯式許可權聲明Android默認應用是沒有任何許可權去操作其他應用或系統相關特性的,應用在進行某些操作時都需要顯式地去申請相應的許可權。一般以下動作時都需要申請相應的許可權:
在應用安裝的時候,package installer會檢測該應用請求的許可權,根據該應用的簽名或者提示用戶來分配相應的許可權。在程序運行期間是不檢測許可權的。如果安裝時許可權獲取失敗,那執行就會出錯,不會提示用戶許可權不夠。大多數情況下,許可權不足導致的失敗會引發一個 SecurityException, 會在系統log(system log)中有相關記錄。

(5)許可權繼承/UserID繼承當我們遇到apk許可權不足時,我們有時會考慮寫一個linux程序,然後由apk調用它去完成某個它沒有許可權完成的事情,很遺憾,這種方法是行不通的。前面講過,android許可權是經營在進程層面的,也就是說一個apk應用啟動的子進程的許可權不可能超越其父進程的許可權(即apk的許可權),即使單獨運行某個應用有許可權做某事,但如果它是由一個apk調用的,那許可權就會被限制。實際上,android是通過給子進程分配父進程的UserID實現這一機制的。

(三)常見許可權不足問題分析首先要知道,普通apk程序是運行在非root、非system層級的,也就是說看要訪問的文件的許可權時,看的是最後三位。另外,通過system/app安裝的apk的許可權一般比直接安裝或adb install安裝的apk的許可權要高一些。言歸正傳,運行一個android應用程序過程中遇到許可權不足,一般分為兩種情況:

(1)Log中可明顯看到許可權不足的提示。此種情況一般是AndroidManifest.xml中缺少相應的許可權設置,好好查找一番許可權列表,應該就可解決,是最易處理的情況。有時許可權都加上了,但還是報許可權不足,是什麼情況呢?Android系統有一些API及許可權是需要apk具有一定的等級才能運行的。比如 SystemClock.setCurrentTimeMillis()修改系統時間,WRITE_SECURE_SETTINGS許可權 好像都是需要有system級的許可權才行。也就是說UserID是system.

(2)Log里沒有報許可權不足,而是一些其他Exception的提示,這也有可能是許可權不足造成的。比如:我們常會想讀/寫一個配置文件或其他一些不是自己創建的文件,常會報java.io.FileNotFoundException錯誤。系統認為比較重要的文件一般許可權設置的也會比較嚴格,特別是一些很重要的(配置)文件或目錄
dbus.conf好像是藍牙的配置文件,從許可權上來看,根本就不可能改動,非bluetooth用戶連讀的權利都沒有。/data目錄下存的是所有程序的私有數據,默認情況下android是不允許普通apk訪問/data目錄下內容的,通過data目錄的許可權設置可知,其他用戶沒有讀的許可權。所以adb普通許可權下在data目錄下敲ls命令,會得到opendir failed, Permission denied的錯誤,通過代碼file.listfiles()也無法獲得data目錄下的內容。

Ⅸ android開發,不同的許可權登錄顯示不同的功能界面,怎麼實現

寫一個攔截器不就好了,主要還是資料庫表的設計,用戶有個用戶組,用戶組有什麼許可權,而這個許可權就可以設置了,你根據用戶找到用戶組,用戶組找到相應的許可權
你的許可權里可以設置成頁面的url,這樣轉發就簡單了

Ⅹ android怎麼獲取分區路徑

我們可以在adb中使用df 來查看分區情況。

1、跨分區不能用 MV命令來拷貝。但是可以用CP命令。如PWD,當前目錄為:/data/local/tmp 。

此目錄下有個busybox和1.txt文件。則利用CP命令拷貝如下:./busybox cp1.txt /system.

2、Android的用戶組有 System, root, shell

3、怎麼樣才能操作分區。

分區操作是需要許可權的。一般來說System分區的許可權限製得比較嚴,Data分區限制比較嚴,用戶可以操作的目錄有local,app目錄。比如/data/local/tmp.

data分區常用目錄:app , system , data ,local,misc 其中system,local可以進入並使用ls等命令。data,app可以進入,但不能用ls命令。

data/data目錄:存放的是所有APK程序數據的目錄,每個APK對就一個自己的Data目錄,就是在data/data/目錄下,會產生一個跟Package一樣的目錄。如有一個APK,它的包名叫com.test.hello則,在data/data/目錄下會有一個com.test.hello的目錄,這個APK只能操作此目錄,不能操作其它APK的目錄.這個在LINUX下叫做用戶進程只能操作自己的進程目錄.

data/app目錄:用戶安裝的APK放在這里。我們如果把APK放入這個文件夾下面的話,就算安裝好了。這就叫靜默安裝。不用管APK文件裡面的lib目錄下的庫文件,系統會自動幫我們放入調用庫的。

data/system目錄下面有packages.xml ,packages.list,appwidgets.xml, 等等一些記錄手機安裝的軟體,Widget等信息。

data/misc目錄:保存WIFI帳號,VPN設置信息等。如保存了一個WIFI連接帳號,則此目錄下的WIFI目錄下面可以查看到。

system分區常用目錄: app , lib, xbin, bin , media,framework.

system/app目錄:存放系統自帶的APK。沒有測試過是否將APK放入到System/app目錄下,也是靜默安裝APK。?

system/lib目錄:存放APK程序用到的庫文件。

system/bin目錄和system/xbin目錄:存放的是shell命令。

system/framework目錄:啟用Android系統所用到框架,如一些jar文件。

4 Android下面的目錄都是有許可權的,要操作目錄都需要有此許可權才能操作,如果沒有,則使用chomd777來修改.如果是分區根目錄,如/data分區, /system分區.都沒有許可權,則需要重新掛載. 使用 mount -oremount XX

熱點內容
手機如何給u盤加密 發布:2025-08-20 12:56:30 瀏覽:671
自動更新源碼 發布:2025-08-20 12:48:36 瀏覽:743
已關聯的qq為什麼還要驗證密碼 發布:2025-08-20 12:46:01 瀏覽:814
c語言vector用法 發布:2025-08-20 12:46:00 瀏覽:460
lol腳本代練封號 發布:2025-08-20 12:44:39 瀏覽:57
時空幻境安卓版哪裡有 發布:2025-08-20 12:43:43 瀏覽:288
解壓摳畫妝 發布:2025-08-20 12:41:34 瀏覽:844
華彩人生電腦版無法連接伺服器 發布:2025-08-20 12:26:41 瀏覽:984
xp腳本錯誤 發布:2025-08-20 12:11:19 瀏覽:845
租用伺服器有什麼優勢 發布:2025-08-20 12:06:32 瀏覽:871