OSDN Git Service

In MountEmulatedStorage() don't create a mount namespace unless actually mounting.
authorRobert Sesek <rsesek@google.com>
Mon, 31 Oct 2016 15:25:10 +0000 (11:25 -0400)
committerRobert Sesek <rsesek@google.com>
Mon, 31 Oct 2016 15:25:10 +0000 (11:25 -0400)
commit8a3a6ffa865ab21b0575eda782700c8920faf566
tree161e9adcf21d8d6a612f8e0951019be5d04f027e
parent678ba24533139c1e54a9729f3ad9f4614da8fbad
In MountEmulatedStorage() don't create a mount namespace unless actually mounting.

When the zygote starts, it creates its own mount namespace in
nativeUnmountStorageOnInit(). When the zygote forks a new process, unless the
new process actually has permission to access emulated storage (and thus it
needs to be mounted), there is no reason to create another new mount namespace
in the child.

This supports the WebView zygote, which does not have CAP_SYS_ADMIN to perform
mount operations. But since it only forks isolated_app processes, which do not
have access to storage, it does not need to handle mounting.

Test: m checkbuild
Test: angler boots

Bug: 21643067
Change-Id: Ieb75cc3009ed26b7366213409d5fad836f597084
core/jni/com_android_internal_os_Zygote.cpp