adbd (and its dependencies) are marked as recovery_available:true so
that recovery version of the binary is built separately from the one for
system partition. This allows us to stop copying the system version to
the recovery partition and also opens up the way to enable shared
libraries in the recovery partition. Then we can also build adbd as a
dynamic executable.
Bug: 79146551
Test: m -j adbd.recovery
Change-Id: Ib95614c7435f9d0afc02a0c7d5ae1a94e439e32a
Current results on an aosp_angler (32 bit) :
Benchmark Time CPU Iterations
-----------------------------------------------------------------
BM_android_fork_execvp_ext 15019207 ns 1002131 ns 700
Test: android_fork_execvp_ext_benchmark
Change-Id: I3d4339ff5cbb9a641cbb14f0b55d2b5fc18cdfde
Should make it easier to switch callers over to posix_spawn once
that's available.
NOTE: The (now) unused arguments will be removed in a followup (multi-project)c
hange once we empirically confirm that there aren't any prebuilt blobs
using this function. I did readelf all currently checked in prebuilts to look
for a reference to this method, but one can never be too paranoid.
Test: make checkbuild
Change-Id: I454d80c52f269c31846133cc54375decd702fe71
Should use android/log.h instead of cutils/log.h as a good example
to all others. Adjust header order to comply with Android Coding
standards.
Test: Compile
Bug: 26552300
Bug: 31289077
Change-Id: I2c9cbbbd64d8dccf2d44356361d9742e4a9b9031
Before this change, code works like this: after gets POLLHUP from poll, it just
go a busy loop to do poll -> waitpid -> poll -> waitpid ... until child process
really exit. This doesn't make sense and is waste of CPU.
Change-Id: If6cd8b0245587d623e309c3ae27f162e1c7ef504
Signed-off-by: Tao Wu <lepton@google.com>
and run fsck with -f on clean shutdown instead.
With -f, fsck.f2fs always performs a full scan of the /data
partition regardless of whether the partition is clean or not.
The full scan takes more than 2 seconds on volantis-userdebug
and delays the OS boot.
With -a, the command does almost nothing when the partition
is clean and finishes within 20-30ms on volantis-userdebug.
When the partition has an error or its check point has
CP_FSCK_FLAG (aka "need_fsck"), the command does exactly the
same full scan as -f to fix it.
Bug: 21853106
Change-Id: I126263caf34c0f5bb8f5e6794454d4e72526ce38
This cleans up most of the size-related problems in system/core.
There are still a few changes needed for a clean 64-bit build,
but they look like they might require changes to things like the
fastboot protocol.
Change-Id: I1560425a289fa158e13e2e3173cc3e71976f92c0
Use of ECHILD with no definitive errno.h inclusion.
Explicitly listing the errno.h header file rather
then relying on the inclusion chain to do so.
Change-Id: I5552acd928d17fc62192217a30ff2e4fab0b1936
The log_target parameter of android_fork_execvp_ext() is now a
bit field, and multiple targets can be set to log to multiple
places at the same time.
The new target LOG_FILE will log to a file specified by the new
parameter file_path.
Set LOG_FILE and log to a file in /dev (the only writable filesystem
avilable when e2fsck runs) when invoking e2fsck in fs_mgr.
Bug: 10021342
Change-Id: I63baf644cc8c3afccc8345df27a74203b44d0400
Also add ability to do abbreviated logging where only the first
4K bytes and last 4K bytes of output are added to the desginated log.
Also update standalog logwrapper command to support the new options.
Change-Id: Ia49cbe58479b9f9ed077498d6852e20b21287bad
Replace the old signal handling mechanism with a check of POLLHUP
to check when the child has died.
See http://b/8333626
Change-Id: Ic9909b6660b1c3d1ed3015568b1a1ee1c25afe20
Add a lock around android_fork_execvp to ensure no two threads can
execute it at the same time.
This is to help with http://b/8333626
Change-Id: I75d087a74b58f5b8e878675b301200f54d976fb2
When passing a NULL status to android_fork_execvp the return
status will now be the return value of the child if it exited
properly, otherwise a non-0 value will be returned.
Change-Id: I13309c61b37b6b3f9d5507f7d6484e7b6baaf8d0
sigprocmask has undefined behavior when called from a thread.
Replacing with pthread_sigmask to ensure correct behavior if
logwrap() gets called from a thread.
Change-Id: I77b6959d345eac8d7b90039ed8144ead8c19a00c
- Wait for the child to exit before propagating SIGINT and SIGQUIT
to the parent
- Add ignore_int_quit argument to logwrap() that gives the caller the
option to ignore SIGINT and SIGQUIT while logwrap is running
Change-Id: If5c96cf23094917211310f00aa6aed515f110f5b
Always exit the child process with _exit() rather than exit() to ensure none
of the parent's atexit functions get called if the child needs to exit before
calling exec.
Change-Id: I6a75111ef1bb3468c114c98743565471cf82c9dd
Android allows all users to write to log.
The setuid/setgid call is unneeded and could cause unintended
side effects when called from daemons or programs that need
to run as root.
Change-Id: I3bdb26eaa4363ef037615e45a1a5cb1ceb4088f3
Switch to a signal handler to monitor SIGCHLD.
Also, clean up the exit path and log a warning when the
previous SIGCHLD sigaction is not default or ignore.
Change-Id: I7ef7daabee18d80e9e82fba3943cf1d03b504ae3
Sometimes the read on the PTY can wait indefinitely if the child
dies. By using a poll statement that monitors both the output
of the child and its state we prevent this from happening.
Change-Id: I51d5556c66f039bca673145ca72db262977e1689
Abstracting the functionality of logwrapper into a library and making
use of it for the logwrapper executable.
Change-Id: I2bcf722413f3a8454c6f52137dec86c4477fb8b5
- no info on normal process exit (0)
- basename as tag, not the full path
- fix usage, bad "-x" parameter vs "-d" in code
Change-Id: Ife72729eaee2a366bd4226f3fbe3ba074219c974