![]() To facilitate device scripts that want to read/write binary data from
the host side, this change introduces a new "exec" service that
behaves like "shell" but without creating a pty, which would otherwise
mangle binary data.
After forking, it hooks up stdin/stdout of the child process to
the socket connected through to the host. The adb transport doesn't
support shutdown(), so the host can't half-close the socket and wait
for device termination. Instead, the host side now has two explicit
commands "exec-in" and "exec-out" for either sending or receiving
data.
Teach host side copy_to_file() to deal with stdin/stdout special
cases. Switch device side backup/restore services to use the new
create_subproc_raw under the hood.
(cherry picked from commit
|
||
---|---|---|
adb | ||
adf | ||
charger | ||
cpio | ||
debuggerd | ||
fastboot | ||
fastbootd | ||
fs_mgr | ||
gpttool | ||
healthd | ||
include | ||
init | ||
libbacktrace | ||
libcutils | ||
libdiskconfig | ||
libion | ||
liblog | ||
libmemtrack | ||
libmincrypt | ||
libnetutils | ||
libnl_2 | ||
libpixelflinger | ||
libsparse | ||
libsuspend | ||
libsync | ||
libsysutils | ||
libusbhost | ||
libutils | ||
libziparchive | ||
libzipfile | ||
logcat | ||
logd | ||
logwrapper | ||
mkbootimg | ||
netcfg | ||
reboot | ||
rootdir | ||
run-as | ||
sdcard | ||
toolbox | ||
.gitignore | ||
Android.mk | ||
CleanSpec.mk | ||
MODULE_LICENSE_APACHE2 | ||
NOTICE | ||
README | ||
ThirdPartyProject.prop |
README
The system/ directory is intended for pieces of the world that are the core of the embedded linux platform at the heart of Android. These essential bits are required for basic booting, operation, and debugging. They should not depend on libraries outside of system/... (some of them do currently -- they need to be updated or changed) and they should not be required for the simulator build. The license for all these pieces should be clean (Apache2, BSD, or MIT). Currently system/bluetooth/... and system/extra/... have some pieces with GPL/LGPL licensed code. Assorted Issues: - pppd depends on libutils for logging - pppd depends on libcrypt/libcrypto - init, linker, debuggerd, toolbox, usbd depend on libcutils - should probably rename bionic to libc