Skip to content

Commit fed665e

Browse files
jsharkeyGerrit Code Review
authored andcommitted
Merge "Rules for new installd Binder interface."
2 parents cb5f4a3 + e160d14 commit fed665e

File tree

6 files changed

+32
-10
lines changed

6 files changed

+32
-10
lines changed

private/service_contexts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ hdmi_control u:object_r:hdmi_control_service:s0
5656
inputflinger u:object_r:inputflinger_service:s0
5757
input_method u:object_r:input_method_service:s0
5858
input u:object_r:input_service:s0
59+
installd u:object_r:installd_service:s0
5960
iphonesubinfo_msim u:object_r:radio_service:s0
6061
iphonesubinfo2 u:object_r:radio_service:s0
6162
iphonesubinfo u:object_r:radio_service:s0

public/installd.te

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,3 +118,21 @@ allow installd devpts:chr_file rw_file_perms;
118118

119119
# execute toybox for app relocation
120120
allow installd toolbox_exec:file rx_file_perms;
121+
122+
# Allow installd to publish a binder service and make binder calls.
123+
binder_use(installd)
124+
allow installd installd_service:service_manager add;
125+
allow installd dumpstate:fifo_file { getattr write };
126+
127+
# Allow installd to call into the system server so it can check permissions.
128+
binder_call(installd, system_server)
129+
allow installd permission_service:service_manager find;
130+
131+
###
132+
### Neverallow rules
133+
###
134+
135+
# only system_server and dumpstate may interact with installd over binder
136+
neverallow { domain -system_server -dumpstate } installd_service:service_manager find;
137+
neverallow { domain -system_server -dumpstate } installd:binder call;
138+
neverallow installd { domain -system_server -servicemanager userdebug_or_eng(`-su') }:binder call;

public/service.te

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
type audioserver_service, service_manager_type;
2+
type batteryproperties_service, app_api_service, service_manager_type;
23
type bluetooth_service, service_manager_type;
34
type cameraserver_service, service_manager_type;
45
type default_android_service, service_manager_type;
56
type drmserver_service, service_manager_type;
67
type dumpstate_service, service_manager_type;
7-
type gatekeeper_service, app_api_service, service_manager_type;
88
type fingerprintd_service, service_manager_type;
9-
type batteryproperties_service, app_api_service, service_manager_type;
9+
type gatekeeper_service, app_api_service, service_manager_type;
1010
type gpu_service, service_manager_type;
1111
type inputflinger_service, service_manager_type;
12+
type installd_service, service_manager_type;
1213
type keystore_service, service_manager_type;
1314
type mediaserver_service, service_manager_type;
1415
type mediaanalytics_service, service_manager_type;

public/shell.te

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ allow shell servicemanager:service_manager list;
9090
# don't allow shell to access GateKeeper service
9191
# TODO: why is this so broad? Tightening candidate? It needs at list:
9292
# - dumpstate_service (so it can receive dumpstate progress updates)
93-
allow shell { service_manager_type -gatekeeper_service -netd_service}:service_manager find;
93+
allow shell { service_manager_type -gatekeeper_service -netd_service -installd_service}:service_manager find;
9494
allow shell dumpstate:binder call;
9595

9696
# allow shell to look through /proc/ for ps, top, netstat

public/system_app.te

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ allow system_app asec_apk_file:file r_file_perms;
5050

5151
allow system_app servicemanager:service_manager list;
5252
# TODO: scope this down? Too broad?
53-
allow system_app { service_manager_type -netd_service -dumpstate_service }:service_manager find;
53+
allow system_app { service_manager_type -netd_service -dumpstate_service -installd_service }:service_manager find;
5454

5555
allow system_app keystore:keystore_key {
5656
get_state

public/system_server.te

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,12 @@ binder_call(system_server, hal_power)
155155
binder_call(system_server, hal_thermal)
156156
binder_call(system_server, hal_vibrator)
157157
binder_call(system_server, hal_vr)
158-
binder_call(system_server, binderservicedomain)
159-
binder_call(system_server, gatekeeperd)
160-
binder_call(system_server, fingerprintd)
161158
binder_call(system_server, { appdomain ephemeral_app })
159+
binder_call(system_server, binderservicedomain)
162160
binder_call(system_server, dumpstate)
161+
binder_call(system_server, fingerprintd)
162+
binder_call(system_server, gatekeeperd)
163+
binder_call(system_server, installd)
163164
binder_call(system_server, netd)
164165
binder_call(system_server, wificond)
165166
binder_service(system_server)
@@ -455,13 +456,14 @@ allow system_server sysfs_zram:dir search;
455456
allow system_server sysfs_zram:file r_file_perms;
456457

457458
allow system_server audioserver_service:service_manager find;
459+
allow system_server batteryproperties_service:service_manager find;
458460
allow system_server cameraserver_service:service_manager find;
459461
allow system_server drmserver_service:service_manager find;
460462
allow system_server dumpstate_service:service_manager find;
461-
allow system_server batteryproperties_service:service_manager find;
462-
allow system_server keystore_service:service_manager find;
463-
allow system_server gatekeeper_service:service_manager find;
464463
allow system_server fingerprintd_service:service_manager find;
464+
allow system_server gatekeeper_service:service_manager find;
465+
allow system_server installd_service:service_manager find;
466+
allow system_server keystore_service:service_manager find;
465467
allow system_server mediaserver_service:service_manager find;
466468
allow system_server mediaanalytics_service:service_manager find;
467469
allow system_server mediaextractor_service:service_manager find;

0 commit comments

Comments
 (0)