안드로이드 uid 및 UserHandle

Android uid UserHandle
1.Linux uid/gid
Linux    id(uid)   id(gid)。Linux      ,         uid,  uid            。  ,        (        ),Linux        ,             。           id(gid)。 
root  :Linux         ,         。root       root 。

2.Android uid(4.2(API Level 17)) 
Android4.2       。Linux uid/gid          App   。

android            , UserManagerService   ,PackageManagerService ActivityManagerService       。Android                     (  )   ,             、  ,        。

  :        (  id   0 10)      ,   10       ,  , 0          。 
 data/system/packages.xml      uid:userId=”10078” 
Process.myUid()  uid ”1010078” 
Process.myUserHandle()  ”userHandle{10}” 
      0      。 
  packages.xml,  uid    10078 
Process.myUid()  uid ”10078” 
Process.myUserHandle()  ”userHandle{0}”


adb shell     ,    data/user/0 data/user/10         : 
  0: 
        
  10: 
        

    ,              ,     uid,       ,  uid   id      uid,             ( chapter3)。 

(          u0_a78,     u0_a78。 data/system/packages.xml           ,    :userId=”10078”。)

3.android.os.UserHandle
               。       api      uid          : 
       : 



    api getUid()。     ,   id 10       ,packages.xml        uid 10078         ,        10    uid——1010078! 
        
        
     uid       userId,        : 
        
       api myUserId()         uid   id   : 
        

       UserHandle.myUserId()        id   ,                uid,                id。 
 Process.myUserHandle()           : 
       

    API   ,      , Android     ,Process API Level 1,UserHandle API Level 17,      android  ,   Linux uid/gid    id ,         android          。  4.2(API Level 17),       ,         ,Process           ,    。            。 
                id  : 
(1)Process  xxid      API     id 。 
(2)UserHandle  xxid      API   Android  id 。 
(3)Process     UserHandle  。

좋은 웹페이지 즐겨찾기