1dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project/* 2dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 3dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * 4dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * you may not use this file except in compliance with the License. 6dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * You may obtain a copy of the License at 7dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * 8dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * 10dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * See the License for the specific language governing permissions and 14dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * limitations under the License. 15dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project */ 16dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 17dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project/* This file is used to define the properties of the filesystem 18dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project** images generated by build tools (mkbootfs and mkyaffs2image) and 19dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project** by the device side of adb. 20dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project*/ 21dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 22dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#ifndef _ANDROID_FILESYSTEM_CONFIG_H_ 23dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define _ANDROID_FILESYSTEM_CONFIG_H_ 24dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 2516045614fdd4af2efb8b8d143bcb150bcf7940cdMark Salyzyn#include <sys/cdefs.h> 26dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#include <sys/types.h> 27e9e74f3c881bd73bd86be4db8b12200a61f143e1Nick Kralevich#include <stdint.h> 28dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 299b828adfad09200f3f1bd3602187fe3dd5335774Elliott Hughes#if defined(__ANDROID__) 30fe8135739c5a9195e74786205c077964ba4f9c44Nick Kralevich#include <linux/capability.h> 31fe8135739c5a9195e74786205c077964ba4f9c44Nick Kralevich#else 32fe8135739c5a9195e74786205c077964ba4f9c44Nick Kralevich#include "android_filesystem_capability.h" 33fe8135739c5a9195e74786205c077964ba4f9c44Nick Kralevich#endif 34fe8135739c5a9195e74786205c077964ba4f9c44Nick Kralevich 35e920c46e7d6a007290c755ea66ec3367b3478e89Jorge Lucangeli Obes#define CAP_MASK_LONG(cap_name) (1ULL << (cap_name)) 36e920c46e7d6a007290c755ea66ec3367b3478e89Jorge Lucangeli Obes 37dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project/* This is the master Users and Groups config for the platform. 38dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey * DO NOT EVER RENUMBER 39dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey */ 40dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 41dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_ROOT 0 /* traditional unix root user */ 42dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 43dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_SYSTEM 1000 /* system server */ 44dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 45dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_RADIO 1001 /* telephony subsystem, RIL */ 46dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_BLUETOOTH 1002 /* bluetooth subsystem */ 47dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_GRAPHICS 1003 /* graphics devices */ 48dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_INPUT 1004 /* input devices */ 49dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_AUDIO 1005 /* audio devices */ 50dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_CAMERA 1006 /* camera devices */ 51dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_LOG 1007 /* log devices */ 52dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_COMPASS 1008 /* compass device */ 53dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_MOUNT 1009 /* mountd socket */ 54dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_WIFI 1010 /* wifi subsystem */ 55dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_ADB 1011 /* android debug bridge (adbd) */ 56dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_INSTALL 1012 /* group for installing packages */ 57dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_MEDIA 1013 /* mediaserver process */ 58dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_DHCP 1014 /* dhcp client */ 596e1f21584f43311f35ae7f6a4737c6a7e846083aSan Mehat#define AID_SDCARD_RW 1015 /* external storage write access */ 604a6f2321e76685b9489d020980dffb1d9ac73fc0San Mehat#define AID_VPN 1016 /* vpn system */ 611f75d709c10f49d2e2390b888e766bcfd17da860Chung-yih Wang#define AID_KEYSTORE 1017 /* keystore subsystem */ 6293ac1559b8c7ad3125ddcd896082b030faadbbd4Mike Lockwood#define AID_USB 1018 /* USB devices */ 63e572d596b3715198fb48b3d8cef4939a71d58db2aimitakeshi#define AID_DRM 1019 /* DRM server */ 641d91fcf7c0a31d27097b196579a37873ba1c0934Robert Greenwalt#define AID_MDNSR 1020 /* MulticastDNSResponder (service discovery) */ 65c29919c8d75ad218012daeda62e1e62200cad889Mike Lockwood#define AID_GPS 1021 /* GPS daemon */ 66a6a36c0b799b84d06b695027d205f21d13a3275bJeff Hamilton#define AID_UNUSED1 1022 /* deprecated, DO NOT USE */ 672e0047bdc067006d1e38418b2a0e24612d8068baMike Lockwood#define AID_MEDIA_RW 1023 /* internal media storage write access */ 68af7bdc646088e3112052f4fd35061bb720393287Mike Lockwood#define AID_MTP 1024 /* MTP USB driver access */ 69097b4ed4100369862793cf4f0fbbb969b50c154eNick Pelly#define AID_UNUSED2 1025 /* deprecated, DO NOT USE */ 707005c0375416abb595721fe9c1324ed7356beb02Jeffrey Tinker#define AID_DRMRPC 1026 /* group for drm rpc */ 71097b4ed4100369862793cf4f0fbbb969b50c154eNick Pelly#define AID_NFC 1027 /* nfc subsystem */ 7250458cf76ea7b0b03598c785acb1481ed0ae5b1dDianne Hackborn#define AID_SDCARD_R 1028 /* external storage read access */ 73b49183f122956137b8eb3487a19ae980540842c8Daniel Drown#define AID_CLAT 1029 /* clat part of nat464 */ 748cc97302b2cc42d70af3c6d84a6a46984a09fe24Doug Zongker#define AID_LOOP_RADIO 1030 /* loop radio devices */ 7508d64308b93594c587036cffcd8f6780eaf2c417Jeff Tinker#define AID_MEDIA_DRM 1031 /* MediaDrm plugins */ 76dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey#define AID_PACKAGE_INFO 1032 /* access to installed package details */ 77dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey#define AID_SDCARD_PICS 1033 /* external storage photos access */ 78dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey#define AID_SDCARD_AV 1034 /* external storage audio/video access */ 79dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey#define AID_SDCARD_ALL 1035 /* access all users external storage */ 803e76e0a49760c4970b7cda6153e51026af98e4f3Nick Kralevich#define AID_LOGD 1036 /* log daemon */ 81234f696ea7f97dc489290827c1c68f26279de294Torne (Richard Coles)#define AID_SHARED_RELRO 1037 /* creator of shared GNU RELRO files */ 82f7b8cae2ef4fb79473aeede542c9d79a6b5b81c7Daniel Erat#define AID_DBUS 1038 /* dbus-daemon IPC broker process */ 83b5fa88955c0ea0c5b8ec059c787ca36dc64cd4ecGilad Arnold#define AID_TLSDATE 1039 /* tlsdate unprivileged user */ 8451544cc7788fa5ba65c8992c3bbd0a5df8e28f84Marco Nelissen#define AID_MEDIA_EX 1040 /* mediaextractor process */ 8537211e1f3df4624498fadb5b4fa508eb706f1077Jorge Lucangeli Obes#define AID_AUDIOSERVER 1041 /* audioserver process */ 864ae18025f7326d93edb1a0ed06e709092e8b54d0Jorge Lucangeli Obes#define AID_METRICS_COLL 1042 /* metrics_collector process */ 874ae18025f7326d93edb1a0ed06e709092e8b54d0Jorge Lucangeli Obes#define AID_METRICSD 1043 /* metricsd process */ 884ae18025f7326d93edb1a0ed06e709092e8b54d0Jorge Lucangeli Obes#define AID_WEBSERV 1044 /* webservd process */ 89e7a9e52740c952c623f7842ffa1d09b58b45e552Josh Gao#define AID_DEBUGGERD 1045 /* debuggerd unprivileged user */ 90003c07238abe9edf0c041301f8e86c5a186009b0Marco Nelissen#define AID_MEDIA_CODEC 1046 /* mediacodec process */ 91cd2ef4ef1cc91997c305925af7e24318cc00913aChien-Yu Chen#define AID_CAMERASERVER 1047 /* cameraserver process */ 92dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 93dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_SHELL 2000 /* adb and debug shell user */ 94dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_CACHE 2001 /* cache access */ 95dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_DIAG 2002 /* access to diagnostic resources */ 96dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 9760ac6364ec5c0432701d5e01aa7c507019769f9cJohan Redestig/* The range 2900-2999 is reserved for OEM, and must never be 9860ac6364ec5c0432701d5e01aa7c507019769f9cJohan Redestig * used here */ 9960ac6364ec5c0432701d5e01aa7c507019769f9cJohan Redestig#define AID_OEM_RESERVED_START 2900 10060ac6364ec5c0432701d5e01aa7c507019769f9cJohan Redestig#define AID_OEM_RESERVED_END 2999 10160ac6364ec5c0432701d5e01aa7c507019769f9cJohan Redestig 102dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project/* The 3000 series are intended for use as supplemental group id's only. 103dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * They indicate special Android capabilities that the kernel is aware of. */ 104dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_NET_BT_ADMIN 3001 /* bluetooth: create any socket */ 105dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_NET_BT 3002 /* bluetooth: create sco, rfcomm or l2cap sockets */ 106dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_INET 3003 /* can create AF_INET and AF_INET6 sockets */ 107dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_NET_RAW 3004 /* can create raw INET sockets */ 10888dc657d50cb3289a9011828c497eee996ed958cChia-chi Yeh#define AID_NET_ADMIN 3005 /* can configure interfaces and routing tables. */ 1094f1df18766fa13959f347f9c0cbb3dfa67273fa7Jeff Sharkey#define AID_NET_BW_STATS 3006 /* read bandwidth statistics */ 1104f1df18766fa13959f347f9c0cbb3dfa67273fa7Jeff Sharkey#define AID_NET_BW_ACCT 3007 /* change bandwidth statistics accounting */ 111971153aa4a65c4fbc8d916c619a17d3912b2cb02Matthew Xie#define AID_NET_BT_STACK 3008 /* bluetooth: access config files */ 112c39ba5ae32afb6329d42e61d2941d87ff66d92e3Nick Kralevich#define AID_READPROC 3009 /* Allow /proc read access */ 11317d80c84e1ec6fc803f7b30df4e7f436a72e79d4Pavlin Radoslavov#define AID_WAKELOCK 3010 /* Allow system wakelock read/write access */ 114dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 115b93b9d4867c66879af434869de7e84e736178c5aJorge Lucangeli Obes/* The range 5000-5999 is also reserved for OEM, and must never be used here. */ 116b93b9d4867c66879af434869de7e84e736178c5aJorge Lucangeli Obes#define AID_OEM_RESERVED_2_START 5000 117b93b9d4867c66879af434869de7e84e736178c5aJorge Lucangeli Obes#define AID_OEM_RESERVED_2_END 5999 118b93b9d4867c66879af434869de7e84e736178c5aJorge Lucangeli Obes 119b3ef03951cecf4515d0cba759fb1b94c34111adcRobin Lee#define AID_EVERYBODY 9997 /* shared between all apps in the same profile */ 120dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_MISC 9998 /* access to misc storage */ 121dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define AID_NOBODY 9999 122dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 123ca185abcb58582ab58805f792eb868681ebdb55eDianne Hackborn#define AID_APP 10000 /* first app user */ 124ca185abcb58582ab58805f792eb868681ebdb55eDianne Hackborn 125ca185abcb58582ab58805f792eb868681ebdb55eDianne Hackborn#define AID_ISOLATED_START 99000 /* start of uids for fully isolated sandboxed processes */ 126ca185abcb58582ab58805f792eb868681ebdb55eDianne Hackborn#define AID_ISOLATED_END 99999 /* end of uids for fully isolated sandboxed processes */ 127ca185abcb58582ab58805f792eb868681ebdb55eDianne Hackborn 128ca185abcb58582ab58805f792eb868681ebdb55eDianne Hackborn#define AID_USER 100000 /* offset for uid ranges for each user */ 129dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 1307e41c8420e015f6b96e35e90c8a9a8ebf643cdacKenny Root#define AID_SHARED_GID_START 50000 /* start of gids for apps in each user to share */ 1317e41c8420e015f6b96e35e90c8a9a8ebf643cdacKenny Root#define AID_SHARED_GID_END 59999 /* start of gids for apps in each user to share */ 1327e41c8420e015f6b96e35e90c8a9a8ebf643cdacKenny Root 133dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#if !defined(EXCLUDE_FS_CONFIG_STRUCTURES) 134a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn/* 135a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn * Used in: 136a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn * bionic/libc/bionic/stubs.cpp 137a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn * external/libselinux/src/android.c 138a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn * system/core/logd/LogStatistics.cpp 139a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn * system/core/init/ueventd.cpp 140a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn * system/core/init/util.cpp 141a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn */ 142dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectstruct android_id_info { 143dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project const char *name; 144dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project unsigned aid; 145dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project}; 146dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 1474688ac5b73abf15798415f7260f21bd87d23dd2bNick Kralevichstatic const struct android_id_info android_ids[] = { 148dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "root", AID_ROOT, }, 149dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey 150dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "system", AID_SYSTEM, }, 151dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey 152dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "radio", AID_RADIO, }, 153dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "bluetooth", AID_BLUETOOTH, }, 154dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "graphics", AID_GRAPHICS, }, 155dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "input", AID_INPUT, }, 156dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "audio", AID_AUDIO, }, 157dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "camera", AID_CAMERA, }, 158dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "log", AID_LOG, }, 159dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "compass", AID_COMPASS, }, 160dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "mount", AID_MOUNT, }, 161dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "wifi", AID_WIFI, }, 162dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "adb", AID_ADB, }, 163dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "install", AID_INSTALL, }, 164dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "media", AID_MEDIA, }, 165dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "dhcp", AID_DHCP, }, 166dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "sdcard_rw", AID_SDCARD_RW, }, 167dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "vpn", AID_VPN, }, 168dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "keystore", AID_KEYSTORE, }, 169dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "usb", AID_USB, }, 170dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "drm", AID_DRM, }, 171dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "mdnsr", AID_MDNSR, }, 172dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "gps", AID_GPS, }, 173dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey // AID_UNUSED1 174dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "media_rw", AID_MEDIA_RW, }, 175dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "mtp", AID_MTP, }, 176dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey // AID_UNUSED2 177dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "drmrpc", AID_DRMRPC, }, 178dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "nfc", AID_NFC, }, 179dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "sdcard_r", AID_SDCARD_R, }, 180dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "clat", AID_CLAT, }, 181dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "loop_radio", AID_LOOP_RADIO, }, 182dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "mediadrm", AID_MEDIA_DRM, }, 183dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "package_info", AID_PACKAGE_INFO, }, 184dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "sdcard_pics", AID_SDCARD_PICS, }, 185dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "sdcard_av", AID_SDCARD_AV, }, 186dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "sdcard_all", AID_SDCARD_ALL, }, 1873e76e0a49760c4970b7cda6153e51026af98e4f3Nick Kralevich { "logd", AID_LOGD, }, 188234f696ea7f97dc489290827c1c68f26279de294Torne (Richard Coles) { "shared_relro", AID_SHARED_RELRO, }, 189f7b8cae2ef4fb79473aeede542c9d79a6b5b81c7Daniel Erat { "dbus", AID_DBUS, }, 190b5fa88955c0ea0c5b8ec059c787ca36dc64cd4ecGilad Arnold { "tlsdate", AID_TLSDATE, }, 19151544cc7788fa5ba65c8992c3bbd0a5df8e28f84Marco Nelissen { "mediaex", AID_MEDIA_EX, }, 19237211e1f3df4624498fadb5b4fa508eb706f1077Jorge Lucangeli Obes { "audioserver", AID_AUDIOSERVER, }, 1934ae18025f7326d93edb1a0ed06e709092e8b54d0Jorge Lucangeli Obes { "metrics_coll", AID_METRICS_COLL }, 1944ae18025f7326d93edb1a0ed06e709092e8b54d0Jorge Lucangeli Obes { "metricsd", AID_METRICSD }, 1954ae18025f7326d93edb1a0ed06e709092e8b54d0Jorge Lucangeli Obes { "webserv", AID_WEBSERV }, 196e7a9e52740c952c623f7842ffa1d09b58b45e552Josh Gao { "debuggerd", AID_DEBUGGERD, }, 197003c07238abe9edf0c041301f8e86c5a186009b0Marco Nelissen { "mediacodec", AID_MEDIA_CODEC, }, 198cd2ef4ef1cc91997c305925af7e24318cc00913aChien-Yu Chen { "cameraserver", AID_CAMERASERVER, }, 199dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey 200dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "shell", AID_SHELL, }, 201dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "cache", AID_CACHE, }, 202dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "diag", AID_DIAG, }, 203dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey 204dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "net_bt_admin", AID_NET_BT_ADMIN, }, 205dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "net_bt", AID_NET_BT, }, 206dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "inet", AID_INET, }, 207dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "net_raw", AID_NET_RAW, }, 208dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "net_admin", AID_NET_ADMIN, }, 209dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "net_bw_stats", AID_NET_BW_STATS, }, 210dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "net_bw_acct", AID_NET_BW_ACCT, }, 211dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "net_bt_stack", AID_NET_BT_STACK, }, 212c39ba5ae32afb6329d42e61d2941d87ff66d92e3Nick Kralevich { "readproc", AID_READPROC, }, 21317d80c84e1ec6fc803f7b30df4e7f436a72e79d4Pavlin Radoslavov { "wakelock", AID_WAKELOCK, }, 214dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey 215b3ef03951cecf4515d0cba759fb1b94c34111adcRobin Lee { "everybody", AID_EVERYBODY, }, 216dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "misc", AID_MISC, }, 217dfe0cbab3f9039f34af1dc9e31faf8155737ec2dJeff Sharkey { "nobody", AID_NOBODY, }, 218dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project}; 219dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 220dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define android_id_count \ 221dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project (sizeof(android_ids) / sizeof(android_ids[0])) 22208c370cc50e4bdae5a59f4ddfd1e3874bb36579dDoug Zongker 223dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectstruct fs_path_config { 224dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project unsigned mode; 225dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project unsigned uid; 226dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project unsigned gid; 227e9e74f3c881bd73bd86be4db8b12200a61f143e1Nick Kralevich uint64_t capabilities; 228dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project const char *prefix; 229dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project}; 230dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 231a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn/* Rules for directories and files has moved to system/code/libcutils/fs_config.c */ 23208c370cc50e4bdae5a59f4ddfd1e3874bb36579dDoug Zongker 23316045614fdd4af2efb8b8d143bcb150bcf7940cdMark Salyzyn__BEGIN_DECLS 23404aaf5a424b1f88a481a17a6bc3518e2116250e2Colin Cross 235a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn/* 236a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn * Used in: 237a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn * build/tools/fs_config/fs_config.c 238a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn * build/tools/fs_get_stats/fs_get_stats.c 239df33ffadd29ed02d87e87515626b673eac67f735Thierry Strudel * system/extras/ext4_utils/make_ext4fs_main.c 240a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn * external/squashfs-tools/squashfs-tools/android.c 241a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn * system/core/cpio/mkbootfs.c 242a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn * system/core/adb/file_sync_service.cpp 243a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn * system/extras/ext4_utils/canned_fs_config.c 244a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn */ 245df33ffadd29ed02d87e87515626b673eac67f735Thierry Strudelvoid fs_config(const char *path, int dir, const char *target_out_path, 246a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn unsigned *uid, unsigned *gid, unsigned *mode, uint64_t *capabilities); 24708c370cc50e4bdae5a59f4ddfd1e3874bb36579dDoug Zongker 2485d9e5efbcdab4a5442e332944765f67eb7005be5Mark Salyzynssize_t fs_config_generate(char *buffer, size_t length, const struct fs_path_config *pc); 2495d9e5efbcdab4a5442e332944765f67eb7005be5Mark Salyzyn 25016045614fdd4af2efb8b8d143bcb150bcf7940cdMark Salyzyn__END_DECLS 251a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn 252a21c29ee818515d5cde79a01bee86c1e27057096Mark Salyzyn#endif 253dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#endif 254