| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
When starting the runtime from app_process, we only pass JDWP options
if starting zygote. It prevents from opening a JDWP connection in
non-zygote programs while Android apps (forked from zygote) remain
debuggable.
Bug: 23050463
Change-Id: If8ea719063a65db4cdeed69a838b52e87b078b08
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If an app exposes new/delete from a shared library, the libwilhelm
shared library can wind up using the new from the app shared library,
and the delete from libc++. It is completely legal for the app to
export new/delete in this way, so in order to avoid this situation,
preload libwilhelm in the zygote. This forces libwilhelm to always
resolve the new/delete from libc++.
This library cannot be added to android_runtime since libwilhelm
has a shared library which depends on android_runtime.
Bug: 21032018
Change-Id: Id89c196df62d98d62855a1421f397b75a7e990a9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds three new timeslices :
- PostFork : As soon as possible after the app forks from the
zygote. Can be used in conjunction with the system_server
"Start proc:" event to derive an upper bound on fork() and
zygote overhead.
- RuntimeInit & ActivityThreadMain for ZygoteInit#runtimeInit
and ActivityThread#main.
ActivityThread#handleBindApplication and higher level functions
are already well instrumented in systrace. handleBindApplication
should occur immediately after ActivityThread#main.
Note that we use the Activity manager tag to make it easier to
correlate these new events with surrounding events (Start proc
and handleBindApplication) that are already using the AM tag.
bug: 21632700
Change-Id: Ibc01f1721f962c913f3c02a51763b6feb1eb6a4d
|
|
|
|
|
|
|
| |
Build both 32 and 64-bit versions and don't limit it to eng.
Change-Id: I5d6cc8005291100d5fe0f1385e8a0b4ba5f4d630
(cherry picked from commit e740b17d2400ed0db17d1f7fce4f052bbbf808ab)
|
|
|
|
|
|
| |
This was implicitly enabled by using ASAN.
Change-Id: I562402a8191e2a3ab3eefd43860fbe7c58d441d8
|
|
|
|
|
|
|
|
|
|
|
|
| |
app_main.c gets sys/stat.h inherited from
private/android_filesystem_config.h it should
not rely on this in the future. The intent is
to move fs_config function into libcutils and
thus deprecate any need for sys/stat.h in this
include file.
Bug: 19908228
Change-Id: I477b825e582742113f849aaa1df50c41e496b6f6
|
|
|
|
| |
Change-Id: Ieb05a212606f02ebad119a0aea0ed92773ace214
|
|
|
|
|
|
| |
Fix small warnings, turn on -Wall -Werror.
Change-Id: Iab1f01a7c7ebd6ba832b75067c5e395f380a1b8b
|
|\
| |
| |
| |
| | |
* commit '9be7db6e3bc374efd9dcff744deab92148e20dbd':
Switch to libsigchain.a
|
| |
| |
| |
| |
| |
| |
| | |
Use LOCAL_WHOLE_STATIC_LIBRARIES to instruct static linker
to export symbols from the static library.
Change-Id: I465806dcffc777a682523f74ae6f7ab61aaa6962
|
|\ \
| |/
| |
| |
| | |
* commit 'd1e735ef547c1720aa5bb56a446afbb7a8652599':
Link sigchain to main executable
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also export necessary symbols to preempt calls from
libart.so
Bug: 15345057
Bug: 15426766
Change-Id: If0b7f59a59824e30aa0c33dad76c7a44932180de
|
| |
| |
| |
| |
| |
| | |
Bug: 16875245
Change-Id: I29a70215a2207bc4e0db02ab751d32a68edf4b66
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When Android processes fork from Zygote, we rewrite the command line
with a new name, eg. "system_server". When we do this, we should
fill the entire block with zeros to remove corrupted argument
information that may otherwise remain in the /proc/<pid>/cmdline buffer
and be seen in tools and stack dumps.
Fixed an issue where VM options could be overwritten after setting
the nice name if the name was too long.
Bug: 17474152
Change-Id: Ie6cf9ed7752a04300a340e26cd6812bb35c59e1b
|
|/
|
|
|
|
|
|
| |
Bug: 16875245
(cherry picked from commit 79bf4007f559e194205f632b23d2bfb6f8d1e7ba)
Change-Id: I29a70215a2207bc4e0db02ab751d32a68edf4b66
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change app_process to be a symlink to the primary version
and have app_process32/app_process64 be the 32-bit/64-bit
versions respectively.
This will make it possible to use the primary zygote for
am/pm commands and other scripts that use app_process and
don't need a specific zygote.
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
Change-Id: Ibef545994eb95ddc82101c95df613ad1d06345e6
|
|
|
|
|
|
|
|
| |
Look for __i386__ and not __x86__.
(cherry picked from commit 47d526217b3fd0d17ba751c66d25cfaf1c6ed7cd)
Change-Id: I848ba351c378e59ab6744ca1983ae4463ae75ba4
|
|
|
|
|
|
|
|
|
|
| |
The runtime expects them to exist before it's launched.
The boot image / art files are created during the first
zygote launch.
(cherry picked from commit da738713e4e2120a324e8ab6fd11aa0e54a3c66e)
Change-Id: I7472aa25c16a1cf95791af2bdf80ed0d73123872
|
|
|
|
|
|
|
|
|
|
|
|
| |
When app_process/zygote starts, make sure PR_SET_NO_NEW_PRIVS is set.
This prevents zygote spawned apps from acquiring new privileges
on exec.
In particular, this allows the CTS test
android.os.cts.SecurityFeaturesTest#testNoNewPrivs() to pass if ART is set
as the default runtime.
Change-Id: I81139cda999c7b1430242561aad28f566e9b6da0
|
|
|
|
| |
Change-Id: I3e97bb3cb8070c0ec0c6b97769f1da3e7b4ef8f5
|
|
|
|
|
|
|
|
| |
Use String8::isEmpty instead. Note that this code path is hit
only if the zygote calls ::exit, and that never happens unless
the VM invocation fails.
Change-Id: I0e7d3a86a79b12b2174ca3bf0dbe1904e33c041a
|
|
|
|
|
|
|
|
| |
- Use different process names for the 32 / 64 bit zygote.
- Pass command line arguments correctly. The first unmatched
argument must be passed through to the java main class.
Change-Id: I952ebbdbba941f118d992354b9bd0ada2dade417
|
|
|
|
|
|
|
|
|
|
| |
Query system properties for the list of ABIs and pass
it as a command line argument to ZygoteInit.
Also add a new Zygote command that returns this list of
ABIs to peers.
Change-Id: I68034c6f63fa626911122579a011a0a25a8cda94
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Make copies of argc, argv before argv is potentially
overwritten with the process name.
- Allow multiple command line arguments to be passed to
ZygoteInit (this is required for some of the 64 bit
zygote work).
- Add an explanatory comment about how these argments
are processed.
Change-Id: I752be69c5c0f97ed17d1a3dded19f46ee00929b0
|
|
|
|
|
|
|
|
|
|
|
|
| |
These look like historical oddities, and weren't really being
used for anything useful.
Process:setArgV0 was being called by android.util.Process, but
that functionality can be moved directly into the implementation
of that class.
bug: 13647418
Change-Id: I216c8f8a4c065f0cf3a61f19f9e32decd26f93f6
|
|
|
|
|
|
|
|
|
|
|
| |
Use LOCAL_MULTILIB := both to build app_process64 instead of
duplicating the build rule.
Also causes PRODUCT_PACKAGES := app_process to install both
versions on 64-bit platforms, as the module names for both
app_process and app_process64 are now app_process.
Change-Id: Ia3c3265d15475771b0cae8bace53b8fbf351c186
|
|
|
|
|
|
|
| |
On 64-bit platforms builds two copies of app_process, the 32-bit
app_process and 64-bit app_process64.
Change-Id: I59d739b5df398ad0bd040c954c57640ff7ab3e72
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Stop working around bad applications by setting ADDR_COMPAT_LAYOUT.
ADDR_COMPAT_LAYOUT is undesirable because it reduces the amount of
address space available to an application.
The Android emulator, in both 4.3 and 4.4, does not set
ADDR_COMPAT_LAYOUT. Anyone needing to test their application on a
version of Android without ADDR_COMPAT_LAYOUT can use the emulator
and reproduce the failures.
Change-Id: I8f753acc205798bd7f031026c7ece12d26de562c
|
|\
| |
| |
| |
| | |
* commit '35587a0c47c33a8eed7817dc705dbf502f7b5b60':
Don't set ADDR_COMPAT_LAYOUT on the emulator
|
| |
| |
| |
| |
| |
| | |
Don't work around third party app bugs on the emulator.
Change-Id: I4440fcd56b72e3a74881ddec2a469f037a060525
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change disables all atrace tracing in Zygote immediately after it is
initialized. This is necessary because Zygote has no way to receive
notifications that the enabled trace tags have been changed. Tracing is
re-enabled when other processes fork from Zygote.
Change-Id: If2983858fb0c4890ba9ab041849b1c4d98f66c13
|
|/
|
|
|
| |
Bug: 8580410
Change-Id: I746aa8258866508c3a725d0773faf4518096548f
|
|
|
|
|
|
| |
Give a hoot — don't pollute!
Change-Id: I30d6c05cecab483f0e9d8063907f7bc0ef2bb104
|
|
|
|
|
|
|
|
|
|
|
|
| |
Different kernels seem to handle ADDR_COMPAT_LAYOUT differently,
sometimes passing it to its children, sometimes not. If it's not
passed to its child successfully, we can end up in a restart loop.
Instead of testing for the presence of ADDR_COMPAT_LAYOUT, use an
environment variable instead, which is handled more predictably.
Bug: 8392487
Change-Id: Ia531dd2abb4e1cd46f3430d844e644f53581f530
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For the emulator, we want people to see memory as it
actually is, not how we're hacking around buggy apps. Don't
set ADDR_COMPAT_LAYOUT on the emulator.
For reasons that I don't understand, personality(ADDR_COMPAT_LAYOUT)
does not persist across an exec on the emulator. app_main gets
into a tight loop restarting itself because of this. This change
also works around that bug.
Change-Id: Ia73a7d2d623c25cf39d248145d97307945d554da
|
|
|
|
|
| |
Bug: 8358800
Change-Id: Id81aa26d74dfd16a49f0ee5926ea2cdb3c2106d8
|
|
|
|
| |
Change-Id: Id3fa26a1bc0e0832bfde73dbd3acce15ecce823d
|
|
|
| |
This reverts commit cb5c734790e1e3d8496b4c75c57e8a537784c056
|
|
|
|
| |
Change-Id: Icdfe215a7e86466a07fe0508775c89963a0a4787
|
|
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/#/c/157220
Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
|
|
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/#/c/143865
Bug: 5449033
Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
|
|
|
|
|
|
| |
Bug: 5010576
Change-Id: Id450dc83efed4897d1e4ff451530fed14457aace
|
|
|
|
|
|
| |
Bug: 4437846
Change-Id: I4552501c693716b14714afb5c5248edaca9547ab
|
|
|
|
|
|
|
| |
This seems simpler and more contained, and I think the comment explaining
why hoop-jumping is necessary is a bit clearer now.
Change-Id: Ief4afd7cbb42188ed835fce23e497520bdb753a8
|
|
|
|
|
|
|
| |
Since LOG_ALWAYS_FATAL is always fatal and code after it is by
definition unreachable, put the call after other diagnostic output.
Change-Id: Ib3a515a04125d8e4f6e8af3a6f59226e8f0dd9cd
|
|
|
|
|
|
| |
executables have calls to some shared libraries without explicitly linking
them. Currently it works as linker links these libraries via dependencies of
other libraries. This is fragile and not the right thing to do.
|
| |
|
| |
|
| |
|
|
|