Commit graph

17992 commits

Author SHA1 Message Date
Treehugger Robot
3581f45667 Merge "add selinux rules for mini-keyctl" 2019-02-01 04:35:47 +00:00
Jeff Sharkey
1df04c3716 Temporarily relax Zygote storage mounting rules.
am: 9f02b30a72

Change-Id: Id93156bcb3e8149b5c9edf29e60c0298a5d48c55
2019-01-31 20:06:32 -08:00
Jeff Sharkey
9f02b30a72 Temporarily relax Zygote storage mounting rules.
In the kernel, sdcardfs wraps the contents of /data/media, which has
the label "media_rw_data_file".  As part of this wrapping, it should
change the label to be "sdcardfs", but we've seen evidence that this
isn't always happening.

To temporarily unblock dogfooding while we continue investigating,
relax rules to allow Zygote to mount from either "sdcardfs" or
"media_rw_data_file", which as described above, are equivalant.

Bug: 123533205
Test: manual
Change-Id: Id633337095c0a3b69d9b8652bcc3327810339cf3
2019-01-31 17:21:30 -07:00
Xiaoyong Zhou
2ebc63bef4 add selinux rules for mini-keyctl
mini-keyctl is a binary used to load channel keys to .fsverity keyring.
This CL creates a new domain for mini-keyctl and a type for /proc/keys
and adds allow rules needed by this binary.

Bug: 112038861
Test: manual
Merged-In: I3b744d302859a02dfe63c81c7f33bb30912d7994
Change-Id: I3b744d302859a02dfe63c81c7f33bb30912d7994
2019-01-31 15:12:11 -08:00
Peter Kalauskas
66e92002e0 Merge "Allow lazy wifi HAL to run"
am: 2613456a36

Change-Id: I0230096583924bb60dac16f3275d8ce6fcf39e48
2019-01-31 14:20:07 -08:00
Peter Kalauskas
2613456a36 Merge "Allow lazy wifi HAL to run" 2019-01-31 22:05:47 +00:00
Roland Levillain
446b2fedce Allow otapreopt to use bind-mounted Bionic artifacts from the Runtime APEX.
Allow `otapreopt_chroot` to:
- bind-mount Bionic artifacts from the Runtime APEX
  (`/postinstall/apex/com.android.runtime`) into `/postinstall/bionic/`;
- read the `/postinstall/system/bin/linker(64)` symlink to
  `/postinstall/bionic/bin/linker(64)` when executing
  `/postinstall/system/bin/otapreopt`.

Allow `otapreopt` (running as `postinstall_dexopt`) to:
- read directories under `/postinstall`.

Test: m otapreopt_chroot
Test: A/B OTA update test (asit/dexoptota/self_full).
Bug: 113373927
Bug: 120266448
Change-Id: I6de9df12d5fd84f1dd92798efed5f2d8b72d3ebe
2019-01-31 19:09:08 +00:00
Jeff Vander Stoep
9ec16c1c34 Merge "Remove unused *_tmpfs types"
am: 586c2cdfdf

Change-Id: I575c948a9143a3d3926ef4bb8b758eab6c928c32
2019-01-31 11:08:34 -08:00
Treehugger Robot
586c2cdfdf Merge "Remove unused *_tmpfs types" 2019-01-31 18:59:43 +00:00
Cheney Ni
3a02820b99 Merge "Add Bluetooth Audio HAL interface V2 as hal_audio_hwservice"
am: eced7cb78d

Change-Id: I61e1949964df49f68a2a053309606d11a69770f1
2019-01-31 10:29:28 -08:00
Treehugger Robot
eced7cb78d Merge "Add Bluetooth Audio HAL interface V2 as hal_audio_hwservice" 2019-01-31 18:17:07 +00:00
Dongwon Kang
523c746859 SEPolicy updates for adding native flag namespace(media).
Test: add sepolicy, build, check GetServerConfigurableFlag function
Bug: 123658514
Change-Id: I798b0ef901068c53070e768305acd38118a7e886
2019-01-31 10:06:32 -08:00
Nick Kralevich
81ce74ac25 Merge "Allow permissions needed for gdb debugging"
am: ecf787e85f

Change-Id: I85fd2e717fe087cf08262b0d4b4866052c8eb48c
2019-01-30 22:11:14 -08:00
Treehugger Robot
ecf787e85f Merge "Allow permissions needed for gdb debugging" 2019-01-31 05:58:55 +00:00
Jiyong Park
46298e157f Allow init to mount on /bionic in recovery mode
am: cd6a6a0933

Change-Id: I8ab4fbf121144b5e88e92683543e517888ecb6ef
2019-01-30 21:00:42 -08:00
Jiyong Park
cee3eecccd init can call setns
am: 9d9333ac86

Change-Id: I7055d04b08f81b08a0bfe5b371723204c459f698
2019-01-30 21:00:29 -08:00
Jiyong Park
b546607a27 Label the bootstrap linker and bionic mount points
am: 4b3f2c6245

Change-Id: Ia90d5b6960272124e6a19ddb5c0923ecce105073
2019-01-30 21:00:17 -08:00
Jiyong Park
cd6a6a0933 Allow init to mount on /bionic in recovery mode
The mount points under /bionic are rootfs in recovery mode. Init should
be able to bind-mount the bootstrap Bionic to the mount points.

Bug: 120266448
Test: adb reboot recovery; phone enters into the recovery mode
Change-Id: I57aed268eac08a5fb3609750bf10cd8d6e97347a
2019-01-31 13:44:21 +09:00
Jiyong Park
9d9333ac86 init can call setns
init now creates two mount namespaces one for pre-apexd processes and
the other for post-apexd processes. This is to mount different files to
the same mount point at /bionic. For pre-apexd processes, the bootstrap
Bionic is mounted. For post-apexd processes, the default Bionic (from
the runtime APEX) is mounted.

Using unshare and setns, init first starts with the mount namespace for
the pre-apexd and then switches to the other mount namespace when APEXes
are ready. It then occasionally switches to pre-apexd mount namespace
when it has to re-launch a pre-apexd process (e.g. the process has
crashed, etc.)

In doing so, read access to /proc/self/ns/mnt is granted to init as
well.

Bug: 120266448
Bug: 122717176
Test: m device boots
Change-Id: Idbf15cbf5cc36b9993d718d4d887cd8f23a94666
2019-01-31 13:44:21 +09:00
Jiyong Park
4b3f2c6245 Label the bootstrap linker and bionic mount points
Bootstap linker has been moved from /system/bin/linker[64] to
/system/bin/bootstrap/linker[64]. Reflect the change in file_contexts.
Existing paths are not removed since the bootstrap linker (or the
linker from the rumtime APEX) will be bind-mounted to the old path by
init.

Also label the files under /bionic which serve as mount points for
either of the bootstrap bionic or the bionic from the runtime APEX.

In addition, read access for the symlinks in /system/lib/*.so and
/system/bin/linker is granted. This is because Bionic files in the paths
are now symlinks to the corresponding mountpoints at /bionic.

Bug: 120266448
Test: device boots to the UI

Change-Id: Iea4d76eb46754b435b6c5428481cd177da8d2ee1
2019-01-31 13:44:21 +09:00
Felka Chang
61ceae5c08 Merge "add create link permission for platform_app"
am: 48234250f5

Change-Id: If5d6f6b88d0c55bf6c3f704e69d9260792ff4bf0
2019-01-30 19:06:03 -08:00
Felka Chang
48234250f5 Merge "add create link permission for platform_app" 2019-01-31 02:38:09 +00:00
Hung-ying Tyan
4633c2fdc0 Sepolicy for dynamic_android_service
am: e4350c1a64

Change-Id: Ie2590b9926d96a004573f1615ea069a28d75bae5
2019-01-30 18:09:35 -08:00
Hung-ying Tyan
e4350c1a64 Sepolicy for dynamic_android_service
Dynamic_android service is a proxy running in SystemServer to the
gsi_service daemon. It provides a set of SystemApi's to manage
installation of a new system image to the device while keeping the
original system image intact.

Bug: 122929007
Test: manual; see dynamic_android service start in logcat
Change-Id: Idb9b0475677dad13b7864ca0cf6041dcab04b4e3
2019-01-31 01:30:36 +00:00
Yabin Cui
a3248b809c Merge "Fix running simpleperf_app_runner on user device."
am: 59e8da9196

Change-Id: Iab88f8f0754b72a6c626608e797342b91c400548
2019-01-30 15:07:36 -08:00
Treehugger Robot
59e8da9196 Merge "Fix running simpleperf_app_runner on user device." 2019-01-30 22:59:43 +00:00
Jeff Vander Stoep
3b9fad192a Remove unused *_tmpfs types
Apps now all share the appdomain_tmpfs type.

Bug: 122854450
Test: boot Blueline with memfd enabled.
Change-Id: I5eac0adc7ecd10d19aa1bdf5f72efc7ed2a3a548
2019-01-30 21:54:40 +00:00
Nick Kralevich
337f56467b Allow permissions needed for gdb debugging
system/sepolicy commit ffa2b61330
introduced the runas_app SELinux domain, which changed how we perform
debugging of Android applications. This broke Android Studio's lldb.

From bugreport:

Debugging an app containing native code using ndk-gdb or Android
Studio's lldb currently fails. There is an selinux error in logcat
about a sigchld denial. Studio can still debug Java-only apps.

In Android Studio, starting the debugger on an app with native
code produces this selinux denial:

01-30 06:58:02.089 13449 13449 W lldb-server: type=1400 audit(0.0:831): avc: denied { sigchld } for scontext=u:r:untrusted_app_27:s0:c167,c256,c512,c768 tcontext=u:r:runas_app:s0:c167,c256,c512,c768 tclass=process permissive=0 app=com.android.ndktestapp

With "set enforce 0", I also see a sigstop denial:

01-30 07:31:12.209 15672 15672 I lldb-server: type=1400 audit(0.0:1290): avc: denied { sigstop } for scontext=u:r:runas_app:s0:c167,c256,c512,c768 tcontext=u:r:untrusted_app_27:s0:c167,c256,c512,c768 tclass=process permissive=1 app=com.android.ndktestapp

In gdb-server.log, Studio reports this error while trying to start lldb-server:

1548831482.091491938 GDBRemoteCommunicationServerLLGS::Handle_vAttach attempting to attach to pid 13379
1548831482.091519117 GDBRemoteCommunicationServerLLGS::AttachToProcess pid 13379
1548831482.092242956 GDBRemoteCommunicationServerLLGS::Handle_vAttach failed to attach to pid 13379: Permission denied

Using ndk-gdb (e.g. on the NdkGdbSample) produces the same sort
of selinux denial:

01-30 07:11:26.742 13926 13926 W arm64-gdbserver: type=1400 audit(0.0:833): avc: denied { sigchld } for scontext=u:r:untrusted_app_27:s0:c166,c256,c512,c768 tcontext=u:r:runas_app:s0:c166,c256,c512,c768 tclass=process permissive=0 app=com.android.developer.ndkgdbsample

If I use "setenforce 0", I see more denials logged (signal and
sigstop):

01-30 07:30:23.346 15478 15478 I arm64-gdbserver: type=1400 audit(0.0:1287): avc: denied { signal } for scontext=u:r:runas_app:s0:c166,c256,c512,c768 tcontext=u:r:untrusted_app_27:s0:c166,c256,c512,c768 tclass=process permissive=1 app=com.android.developer.ndkgdbsample

01-30 07:30:23.349 15478 15478 I arm64-gdbserver: type=1400 audit(0.0:1288): avc: denied { sigstop } for scontext=u:r:runas_app:s0:c166,c256,c512,c768 tcontext=u:r:untrusted_app_27:s0:c166,c256,c512,c768 tclass=process permissive=1 app=com.android.developer.ndkgdbsample

ndk-gdb times out and prints an error:

rprichard@cashew:/x/ndk/ndk/samples/NdkGdbSample$ /x/android-ndk-r19/ndk-gdb --launch
Redirecting gdbserver output to /tmp/gdbclient.log
...
Error: unable to connect to device.
Remote communication error.  Target disconnected.: Connection reset by peer.

gdbclient.log shows that gdbserver hasn't started listening to its Unix socket yet:

rprichard@cashew:/x/ndk/ndk/samples/NdkGdbSample$ cat /tmp/gdbclient.log
Attached; pid = 14232

Normal output looks like this:

rprichard@cashew:/x/ndk/ndk/samples/NdkGdbSample$ cat /tmp/gdbclient.log
Attached; pid = 27799
Listening on Unix domain socket '/data/data/com.android.developer.ndkgdbsample/debug_socket'
Remote debugging from host 127.0.0.0

Test: compiles and builds
Bug: 123612207
Change-Id: Ia9a711cc54cc044c0817a7c17eb4506015adb393
2019-01-30 13:19:36 -08:00
David Anderson
607fb9e445 Allow mkfs on device-mapper devices.
When running a GSI as a live image, a temporary userdata partition is
mounted through device-mapper. In order to properly format+encrypt this
like a normal userdata partition, mkfs must have rw permissions.

Bug: 122850122
Test: manual test
Change-Id: I5aa888f12a85954a9818ed04009832d76c139862
2019-01-30 13:00:35 -08:00
Jeff Vander Stoep
5314cb2a93 Initial selinux policy support for memfd
am: 9f5d0d90a3

Change-Id: Idcdd62cdb6bb0119c7ab85da9e7dfaebe3f1078e
2019-01-30 11:33:43 -08:00
Jeff Vander Stoep
9f5d0d90a3 Initial selinux policy support for memfd
Move all app tmpfs types to appdomain_tmpfs. These are still protected
by mls categories and DAC. TODO clean up other app tmpfs types in a
separate change.

Treble-ize tmpfs passing between graphics composer HAL and
surfaceflinger.

Bug: 122854450
Test: boot Blueline with memfd enabled.
Change-Id: Ib98aaba062f10972af6ae80fb85b7a0f60a32eee
2019-01-30 19:11:49 +00:00
Yabin Cui
84c70929be Fix running simpleperf_app_runner on user device.
Bug: 118835348
Test: build and boot blueline user device.
Test: test simpleperf_app_runner manually.
Change-Id: I022d7f10f6164e6980f55badd4edcdc76a73c004
2019-01-30 11:09:43 -08:00
Peter Kalauskas
03f43017b2 Allow lazy wifi HAL to run
Test: Manually check that lazy wifi HAL runs
Bug: 123307146
Change-Id: I22f9bc7a097056215d249b692b6f39a71b6b9811
2019-01-30 18:52:19 +00:00
Jiyong Park
3d6aa86282 Merge "Label APEX files correctly when TARGET_FLATTEN_APEX=true"
am: 37ab42e542

Change-Id: Icd84b42cdcdf0d186d83d1e3b9a633474fcb2c57
2019-01-30 07:14:40 -08:00
Treehugger Robot
37ab42e542 Merge "Label APEX files correctly when TARGET_FLATTEN_APEX=true" 2019-01-30 15:06:21 +00:00
felkachang
0c402012e6 add create link permission for platform_app
To create symbolic link by unstrusted app raise the security
issue. To allow platform_app to create symbolic link prevent
the functionality from not working.

Fixes: 123555031
Test: atest DocumentsUITests
Bug: 123350324

Change-Id: Idb23c3e813c66bd284d42b8040deeea762f99a0f
2019-01-30 16:03:27 +08:00
Shuzhen Wang
410a5f08d3 Allow cameraserver to access tmpfs
am: 248633385e

Change-Id: I988a34b8c28fb44ddf723cf74ef6beb4a2487350
2019-01-29 21:46:16 -08:00
Shuzhen Wang
e588655bb9 Revert "Cameraserver: Allow cameraserver to access /data/misc/cameraserver"
am: 6b4caaa3e8

Change-Id: I5544b92d58ba992dd24c354d4c801f6891204b35
2019-01-29 21:45:53 -08:00
Shuzhen Wang
248633385e Allow cameraserver to access tmpfs
Bug: 79465976
Test: testHeic CTS test
Change-Id: I51eb485dc29d869c5d35fc317b0e008d04bdcbad
2019-01-30 05:31:42 +00:00
xunchang
0ad3e4f4dd Allow update engine to write to statsd socket
Update_engine reports metrics with libmerticslogger, which switches to
write to statsd recently. Add the permission to update_engine_common so
that both the daemon and recovery sideload tool can report the metrics.

update_engine: type=1400 audit(0.0:47): avc: denied { write } for name="statsdw" dev="tmpfs" ino=26257 scontext=u:r:update_engine:s0 tcontext=u:object_r:statsdw_socket:s0 tclass=sock_file permissive=0
update_engine: type=1400 audit(0.0:54): avc: denied { write } for name="statsdw" dev="tmpfs" ino=26257 scontext=u:r:update_engine:s0 tcontext=u:object_r:statsdw_socket:s0 tclass=sock_file permissive=0

Bug: 120623435
Test: the denial message disappear
Change-Id: Ie6a7a179b4291ef8209c99de758862b25df2a02f
2019-01-29 16:07:39 -08:00
Shuzhen Wang
6b4caaa3e8 Revert "Cameraserver: Allow cameraserver to access /data/misc/cameraserver"
This reverts commit 4e1497c7c0.

Reason for revert: Write temporary file to in-memory tmpfs instead

Test: testHeic CTS test
Bug: 123526741
Change-Id: Ifa7f5a0b50c46ee3e1a5695595233b17adc99222
2019-01-29 23:29:05 +00:00
Mathieu Chartier
a35beeb6f3 Merge "Rename runtime -> runtime_native property namespace"
am: 91b0ef13d8

Change-Id: Idfa6c810d540332c44ba997ec2a061efabdb6903
2019-01-29 14:48:03 -08:00
Isabelle Taylor
edcf56ec71 Merge "Fix perfetto CTS test"
am: 13fdfa44cd

Change-Id: I987f6089184ff64b8e7766355349ea2b77614e82
2019-01-29 14:47:37 -08:00
Mathieu Chartier
91b0ef13d8 Merge "Rename runtime -> runtime_native property namespace" 2019-01-29 22:44:36 +00:00
Treehugger Robot
13fdfa44cd Merge "Fix perfetto CTS test" 2019-01-29 22:31:31 +00:00
Roland Levillain
9ae5d888eb Introduce a postinstall_apex_mnt_dir label for /postinstall/apex.
am: a42ebf4128

Change-Id: I52a7240c6d852b20bde14a269ebccec46e53b5ea
2019-01-29 10:21:02 -08:00
Mathieu Chartier
669cef88a3 Rename runtime -> runtime_native property namespace
The convention for native properties is to use _native suffix.

Bug: 123524494
Bug: 120794191
Test: set a property and ensure it can be read in AndroidRuntime.cpp

Change-Id: I69feab9be78f24d812b8f953d3ec06a5d8d18f15
2019-01-29 10:20:36 -08:00
Roland Levillain
a42ebf4128 Introduce a postinstall_apex_mnt_dir label for /postinstall/apex.
Directory `/postinstall/apex` is used as a mount point for a tmpfs
filesystem during A/B OTA updates. APEX packages from the new system
partition are mounted ("activated") in subdirectories of
`/postinstall/apex`, so that they are available when `otapreopt` is
running.

Directory `/postinstall/apex` used to be of type `tmpfs` for SELinux
purposes. The new `postinstall_apex_mnt_dir` label is more
restrictive, and tightens permissions granted to `otapreopt_chroot`,
`otapreopt` (running as `postinstall_dexopt`), and `dex2oat`,
regarding the apexd logic recently added to `otapreopt_chroot`.

Test: A/B OTA update test (asit/dexoptota/self_full).
Bug: 113373927
Bug: 120796514
Change-Id: I03f0b0433d9c066a0c607f864d60ca62fc68c990
2019-01-29 10:09:50 +00:00
Mathieu Chartier
01a1ca2d55 Merge "Add runtime property permissions for experiments"
am: 2c92514304

Change-Id: I024ecbbbc7da3d0089ba2427b70daaf044b3e084
2019-01-28 21:34:29 -08:00
Remi NGUYEN VAN
27902606e3 Merge "Add NetworkStack policies for netd and netlink"
am: a579a99d31

Change-Id: Id9ea589714f9757c7d5d61ca2efa867006569077
2019-01-28 21:28:53 -08:00