885b742bb66660947d8335e9a4f5a4eef2e45ff9 |
|
20-Jan-2016 |
doheon1.lee <doheon1.lee@lge.com> |
Changes of root storage space unmounting time on Zygote Process Zygote process forks every child process for launch the SystemServer and other applications. When child process is forked, unmount storage inherited from Zygote process is executed before it gains its own root storage space. If Zygote have no storage spaces, unmount operations not needed to get relevant permission storage space. Thus unmount is executed only once shortly before the SystemServer is forked. And the child processes do not unmount its inherited root storage space. Change-Id: I311ca7ea2c93085f42579f8cf8bdc7ef1d570a04
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
0f6ae2ec0df270c4ce51c87896fe01fe6e1fedfa |
|
22-Feb-2016 |
Erik Kline <ek@google.com> |
resolve merge conflicts of b242549166 to nyc-dev Change-Id: I42d4cac95a209fdfae5769d75d90f004a94d60a4
|
b2425491662b4d31fbcf09ab36bd10adc42a2b28 |
|
18-Feb-2016 |
Erik Kline <ek@google.com> |
Give bluetooth sufficient capabilities to run DhcpClient Specifically: CAP_NET_RAW CAP_NET_BIND_SERVICE Bug: 26991160 Change-Id: I2afddc9efa3b613d974afb0ea33703948203d99a
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
2956beeec97df6ee7fe0c826ccc8c6f625f36d75 |
|
28-Jan-2016 |
Pavlin Radoslavov <pavlin@google.com> |
Grant CAP_WAKE_ALARM to the Bluetooth process for any user Use multiuser_get_app_id(uid) to check for AID_BLUETOOTH and allow the CAP_WAKE_ALARM capability for any user. Bug: 26784675 Change-Id: I11641e212b7c815e9137ae5620da6ad55f95a899
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
fbd5904ce690491b813ebf815a7e33083bc59ea0 |
|
24-Nov-2015 |
Pavlin Radoslavov <pavlin@google.com> |
Use GID "wakelock" to control access to kernel wakelock * Added GID "wakelock" (3010) to the list of groups the System Server belongs to. * Added GID "wakelock" to the list of assigned groups for the "android.permission.BLUETOOTH_STACK" Android permission. * Grant CAP_BLOCK_SUSPEND to processes that belong to GID "wakelock" Bug: 25864142 Change-Id: I8a9a5f11e4a9ecd1abf2d4f4b90ec89b3101332e
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
a87723515627401f142aec1fd98b8863b726a1a3 |
|
11-Dec-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Special case system_server to not create the JIT code cache. (cherry picked from commit 3c43b3863328e339dff90b216aed15194d129e4a) Change-Id: Ic7b0887f9edcb950fad98ccbe66cab6949fbdc52
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
b053cce7ae343feeb6c0908920692904f3b0b94c |
|
18-Nov-2015 |
Andreas Gampe <agampe@google.com> |
Frameworks/base: Make RuntimeAbort more expressive Pass a message to FatalError, which will be more prominent in aborts than "RuntimeAbort." Change-Id: Icb3b8f50ca0cc15fd1346c530cd8e6452e951879
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
ea1831d211ea0e6b2d161c714bb0786369ef2df5 |
|
24-Sep-2015 |
Elliott Hughes <enh@google.com> |
am b57dd722: resolved conflicts for a884d81e to stage-aosp-master * commit 'b57dd722f1dc0663417da37d3a82f8283ad3c982': constify JNINativeMethod function pointer tables
|
b57dd722f1dc0663417da37d3a82f8283ad3c982 |
|
24-Sep-2015 |
Elliott Hughes <enh@google.com> |
resolved conflicts for a884d81e to stage-aosp-master Change-Id: Ice485967fa96f13786024b6939b826638e906ff0
|
76f6a86de25e1bf74717e047e55fd44b089673f3 |
|
19-Sep-2015 |
Daniel Micay <danielmicay@gmail.com> |
constify JNINativeMethod function pointer tables Change-Id: I4036c924958221cbc644724f8eb01c5de3cd7954
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
db8a6ee56b8e40d0a743e929739fb19a8b3ec456 |
|
04-Sep-2015 |
Sharvil Nanavati <sharvil@google.com> |
am 80770c09: am 16db4101: Merge "DO NOT MERGE Add \'bluetooth\' user to the \'system\' group." into cw-e-dev * commit '80770c099144b65e9c7768bbdb56608eebf03b01': DO NOT MERGE Add 'bluetooth' user to the 'system' group.
|
16db4101829c7beee42a09fcaf87fa4e31bc1d5a |
|
03-Sep-2015 |
Sharvil Nanavati <sharvil@google.com> |
Merge "DO NOT MERGE Add 'bluetooth' user to the 'system' group." into cw-e-dev
|
babe81546ef001ae26a5c4b572f1480ba737ae32 |
|
01-Sep-2015 |
Sharvil Nanavati <sharvil@google.com> |
DO NOT MERGE Add 'bluetooth' user to the 'system' group. Also grant the Bluetooth process CAP_BLOCK_SUSPEND so it can acquire wake locks directly from /sys/power/wake_lock. Bug: 23375670 Change-Id: Ib094c5752d49488c2560897ff6bb821daf98a281
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
7dd51792e2131891d402b4f86c78afa86b6d5758 |
|
01-Sep-2015 |
Christopher Ferris <cferris@google.com> |
am d6597cb4: am 1bc7d0c8: am 70c958c4: Merge "Save/restore errno in SIGCHLD handler." into mnc-dr-dev * commit 'd6597cb43c1985ec955f2f5c5daf7be52a9f12a2': Save/restore errno in SIGCHLD handler.
|
a8a795428acf5cbe1cd348aa766243203ca78b80 |
|
01-Sep-2015 |
Christopher Ferris <cferris@google.com> |
Save/restore errno in SIGCHLD handler. The SIGCHLD handler can set the errno, which can change the errno found on the thread on which the signal handler is invoked. Most of the time this is harmless, but it's possible that if the main thread was making a system call, and allows certain failures based on errno, that logic can fail. The fix is to save/restore errno in the handler. Bug: 23572286 Bug: 23689391 Change-Id: I4542fd60cc1398ce0a8902d8df98a3d089fb6efe
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
1262059c072375cd5bd48e86b7ee69d66848494d |
|
20-Aug-2015 |
Elliott Hughes <enh@google.com> |
am 260cb53f: am ce4fbb4d: Merge "zygote: fix memory leak when fork process" * commit '260cb53fdb751dd6997b6b6f60a358257c4df82a': zygote: fix memory leak when fork process
|
31b1b2766d80a9a1979488e57a49d1015cfb5538 |
|
20-Aug-2015 |
Elliott Hughes <enh@google.com> |
am 260cb53f: am ce4fbb4d: Merge "zygote: fix memory leak when fork process" * commit '260cb53fdb751dd6997b6b6f60a358257c4df82a': zygote: fix memory leak when fork process
|
1ca062f21e466b5e8b5defe12033c65b2b4276cb |
|
31-Jul-2015 |
Mykola Kondratenko <mykola.kondratenko@sonymobile.com> |
zygote: fix memory leak when fork process Release memory allocated by GetIntArrayElements. Change-Id: If7ce2a78a480e58b0376352ce438dbe51f664f3a
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
7d28ad9b638a8184ab499cbe708d3427025e569b |
|
06-Aug-2015 |
Jeff Sharkey <jsharkey@google.com> |
am cb54ffb2: Merge "Protect runtime storage mount points." into mnc-dev * commit 'cb54ffb2cb9583eaf6b58dcc636681c4e4e07a7d': Protect runtime storage mount points.
|
928e1ecfe2ca8deb7421f06c80bb4ae02d27f030 |
|
06-Aug-2015 |
Jeff Sharkey <jsharkey@android.com> |
Protect runtime storage mount points. We have a bunch of magic that mounts the correct view of storage access based on the runtime permissions of an app, but we forgot to protect the real underlying data sources; oops. This series of changes just bumps the directory heirarchy one level to give us /mnt/runtime which we can mask off as 0700 to prevent people from jumping to the exposed internals. Also add CTS tests to verify that we're protecting access to internal mount points like this. Bug: 22964288 Change-Id: I74dbdcb01d4fabe92166b8043a74c6a1e93c6d5f
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
6d43a861d01ef48f37c69f96346a13d23164a585 |
|
05-Aug-2015 |
Tim Murray <timmurray@google.com> |
Add boost to increase the load on newly-forked zygote processes. Makes it more likely for app launches to end up on a large core in an HMP environment. bug 21915482 Change-Id: Ieac192a4bc1237dd03b9492fcad3a78de5510a58
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
faf3f692174be30ef9226981e640bc9a09c4da97 |
|
01-Jul-2015 |
Jeff Sharkey <jsharkey@android.com> |
Fully unmount existing storage in Zygote. Before mounting the requested storage into place, fully unmount all existing mounts inherited from the root namespace. Bug: 22192518 Change-Id: I6f7f12c1219d25ee487a031d37c60fb4051d24ad
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
9527b223a9d4a4d149bb005afc77148dbeeff785 |
|
25-Jun-2015 |
Jeff Sharkey <jsharkey@android.com> |
Let's reinvent storage, yet again! Now that we're treating storage as a runtime permission, we need to grant read/write access without killing the app. This is really tricky, since we had been using GIDs for access control, and they're set in stone once Zygote drops privileges. The only thing left that can change dynamically is the filesystem itself, so let's do that. This means changing the FUSE daemon to present itself as three different views: /mnt/runtime_default/foo - view for apps with no access /mnt/runtime_read/foo - view for apps with read access /mnt/runtime_write/foo - view for apps with write access There is still a single location for all the backing files, and filesystem permissions are derived the same way for each view, but the file modes are masked off differently for each mountpoint. During Zygote fork, it wires up the appropriate storage access into an isolated mount namespace based on the current app permissions. When the app is granted permissions dynamically at runtime, the system asks vold to jump into the existing mount namespace and bind mount the newly granted access model into place. Bug: 21858077 Change-Id: I62fb25d126dd815aea699b33d580e3afb90f8fd2
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
4887789e44cdb16b042a35e8ec03983213e88ac6 |
|
18-Mar-2015 |
Jeff Sharkey <jsharkey@android.com> |
Progress towards dynamic storage support. Storage devices are no longer hard-coded, and instead bubble up from whatever Disk and VolumeBase that vold uncovered, turning into sibling Java objects in MountService. We now treat vold events as the source-of-truth for state, and synchronize our state by asking vold to "reset" whenever we reconnect. We've now moved to a model where all storage devices are mounted in the root mount namespace (user boundaries protected with GIDs), so we no longer need app-to-vold path translation. This also means that zygote only needs to bind mount the user-specific /mnt/user/n/ path onto /storage/self/ to make legacy paths like /sdcard work. This grealy simplifies a lot of system code. Many parts of the platform depend on a primary storage device always being present, so we hack together a stub StorageVolume when vold doesn't have a volume ready yet. StorageVolume isn't really a volume anymore; it's the user-specific view onto a volume, so MountService now filters and builds them based on the calling user. StorageVolume is now immutable, making it easier to reason about. Environment now builds all of its paths dynamically based on active volumes. Adds utility methods to turn int types and flags into user-readable strings for debugging purposes. Remove UMS sharing support for now, since no current devices support it; MTP is the recommended solution going forward because it offers better multi-user support. Simplify unmount logic, since vold will now gladly trigger EJECTING broadcast and kill stubborn processes. Bug: 19993667 Change-Id: I9842280e61974c91bae15d764e386969aedcd338
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
ed6b9dff563c5e22f040ff37e12c0d771e0478ae |
|
21-Nov-2014 |
Andreas Gampe <agampe@google.com> |
Frameworks/base: Consistency in core/jni Make consistent use of core_jni_helpers for registration. Translate some #ifdefs into const bools. Change-Id: I37639aa053dd50f003a552cbd8550dddecc811c5
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
46d8444631b4b1253a76bfcc78a29d26014d022f |
|
19-Nov-2014 |
Dan Albert <danalbert@google.com> |
Fix clang warnings in core/jni. There are a few bugs in here too (mostly people expecting + to concatenate C strings) :( Change-Id: I0a243c05c4ea8b56e84896f37814d0fbea4c39d5
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
5d5e4b14f67903370a7805492eb92fbe3b487a14 |
|
29-Oct-2014 |
Calin Juravle <calin@google.com> |
am 43a92646: Merge "Use native brige only if we have a private data directory." * commit '43a9264619e08f464dd4f184e53441a440cca09f': Use native brige only if we have a private data directory.
|
6a4d2369e5493cea86817634eceb0be46ba7d7a6 |
|
28-Oct-2014 |
Calin Juravle <calin@google.com> |
Use native brige only if we have a private data directory. Bug: 18027433 Change-Id: I59b1b1cbe1d7d14b93d8bb6d4255c951d9e469b6
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
5d4deb8246b13531a6b2b7611c650ba504e44dc6 |
|
28-Oct-2014 |
Calin Juravle <calin@google.com> |
am f7d24d24: Merge "PreInitializeNativeBridge only if its Available" * commit 'f7d24d244319599f62c22e29c3e6540d6cbadf49': PreInitializeNativeBridge only if its Available
|
79ec4c15ab941419d21700a9734f5238b975c31a |
|
24-Oct-2014 |
Calin Juravle <calin@google.com> |
PreInitializeNativeBridge only if its Available Also, assert that we always have a private application directory for non system_server case. Change-Id: I8397d7f7b04cde0bf65b60ca415bf3f4b349783c
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
921d8e2ddb04080827fa92239bb858631e3cabe3 |
|
01-Oct-2014 |
Elliott Hughes <enh@google.com> |
am ee7684ca: am 04517286: Merge "Use strerror(3) when reporting zygote failures." * commit 'ee7684cad00a13fc82519599ad8fab3cfbd6fe8b': Use strerror(3) when reporting zygote failures.
|
960e83185efc709470f3c4c85f69e82269d2927a |
|
30-Sep-2014 |
Elliott Hughes <enh@google.com> |
Use strerror(3) when reporting zygote failures. Bug: 17700596 Change-Id: I39a72ab6f19063de3c90c9fccdb749dc9a86324e
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
a103ebed6e9a44a406b31636791d2970c882ec44 |
|
25-Sep-2014 |
Andreas Gampe <agampe@google.com> |
resolved conflicts for merge of dfdabe37 to lmp-dev-plus-aosp Change-Id: Ia9c350dcfb41f9d04400a86bd7e5f2cf2af656f1
|
2eacd06bfb82b33dfcbccafbcfc0bf1218484bb5 |
|
10-Sep-2014 |
jgu21 <jinghui.gu@intel.com> |
Frameworks/base: Early init native bridge Add the app directory to the arguments for starting a process. Add a check for NeedsNativeBridge and a call to PreInitializeBridge in the native fork code. Change-Id: I0b93da93251c6b4638de786bf98cf99df07c3fc2
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
dc84c6ca86290393fec2bb730f125575ee9e168e |
|
05-Sep-2014 |
Andreas Gampe <agampe@google.com> |
resolved conflicts for merge of 82ad9ec3 to lmp-dev-plus-aosp Change-Id: I7ae05c4f1b072906932a9ed47bdbad881b8e0d37
|
aec67dcc02362e4d2f7641c6605405b839bd1bd4 |
|
03-Sep-2014 |
Andreas Gampe <agampe@google.com> |
Frameworks/base: Add native bridge post-fork initialization Change-Id: I5a20de1cb68dd1802937b369b14c50c9c1031c67
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
4990e4f0e3d493036e99e1f5fb893635a9b66eb1 |
|
30-Jun-2014 |
Sharvil Nanavati <sharvil@google.com> |
Launch processes running under the 'bluetooth' uid with CAP_WAKE_ALARM. This is required since bluedroid needs to set wake alarms and timers. Going through JNI back into Java code and then across Binder to AlarmManager is both inefficient and doesn't provide the resolution required for functions like A2DP. Change-Id: I619be0b18a9e7ac2567b7c68ba84fcd15eecf715
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
3089bed197a4fbfcc3fb741aa0ed6b3e162e392c |
|
15-Jul-2014 |
Colin Cross <ccross@android.com> |
Zygote: make libprocessgroup failures non-fatal createProcessGroup can fail if the kernel does not support the cpuacct cgroup. Print a more useful error message, and don't runtime abort. Bug: 16243791 Change-Id: Ibbf081bda58a99c83b8070f55d151905c706b378
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
0161bbc6e54744d5e0348af3d123858818f966e9 |
|
03-Jun-2014 |
Colin Cross <ccross@android.com> |
ActivityManager: use Process.killProcessGroup to kill forked processes Place newly-created processes in a process group, and use killProcessGroup to kill any forked processes. Bug: 15313911 Change-Id: I0f3e2eeebd9a910dae3f6b2801826c92aea03030
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
18cd9f57621b47889bdf81b2b04413569a999ef4 |
|
13-Jun-2014 |
Colin Cross <ccross@android.com> |
clean up native com.android.internal.os.Zygote This is never compiled for the host any more, so remove all the unnecesarry ifdefs. Change-Id: I757e6d604b7f41476ac1021f5bdbc777eac6f99e
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
160992da04cab56a92cd425adc249c52b040f93d |
|
14-Apr-2014 |
Narayan Kamath <narayan@google.com> |
Fix broken logging in Zygote.cpp. - Differentiate between clean exits and signals. - Change the logic for the waitpid warning. We should log it only if the *first* call to waitpid returned ECHILD. Change-Id: I6bc50e4ffd100fb7f3f526d6b4056bed10b8045f
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|
973b4663b0b5ee62006522bf4742af076096e548 |
|
31-Mar-2014 |
Narayan Kamath <narayan@google.com> |
Move zygote startup logic to the frameworks. The Zygote class is now in com.android.internal.os. It is responsible for the vast majority of work before and after the call to fork(). It calls back into the Runtime via the new dalvik.system.ZygoteHooks class to allow the Runtime to perform pre fork cleanup and post fork initialization. The native code in Zygote.cpp is a direct and straightforward port of the existing code in art. Most differences are superficial, for example : - We use C style logging (ALOGE) instead of stream based logging. - We call env->FatalError() instead of using LOG(FATAL) Change-Id: Ia101fb2af12d23894fe57e4134d2bc6d142e5059
/frameworks/base/core/jni/com_android_internal_os_Zygote.cpp
|