platform_system_core/logcat/logcatd

30 lines
780 B
Text
Raw Normal View History

#! /system/bin/sh
# This is primarily meant to be used by logpersist. This script is run as an init service, which
# first reads the 'last' logcat to persistent storage with `-L` then run logcat again without
# `-L` to read the current logcat buffers to persistent storage.
# init sets the umask to 077 for forked processes. logpersist needs to create files that are group
# readable. So relax the umask to only disallow group wx and world rwx.
umask 037
has_last="false"
for arg in "$@"; do
if [ "$arg" == "-L" -o "$arg" == "--last" ]; then
has_last="true"
fi
done
if [ "$has_last" == "true" ]; then
logcat "$@"
fi
args_without_last=()
for arg in "$@"; do
if [ "$arg" != "-L" -a "$arg" != "--last" ]; then
ARGS+=("$arg")
fi
done
exec logcat "${ARGS[@]}"