Commit graph

571 commits

Author SHA1 Message Date
Ytai Ben-Tsvi
6025b731e6 Control audio HAL services in start/stop
Some system services (e.g. SoundTriggerMiddleware) assume that
whenever they start, the audio HAL is in its default (reset) state.
init.rc scripts tie the lifetimes of the audio HAL and system
processes, but when using stop/start this is not the case, and this
may cause spurious crashes in this case.

stop/start is apparently being relied on in some test infrastructure,
so this change is needed to avoid causing problems for those systems
or false detection of problems, which are not actually present in
production.

Bug: 154029444
Test: Manually verify that the audio HAL is stopped on
      'adb shell stop', restarted on 'adb shell start' and that the
      system boots correctly after.
Change-Id: I39878b978b47a169c4fe446c43d7347809d15e06
2020-04-23 10:42:55 -07:00
Igor Murashkin
2680b3158e start: Toggle iorapd on/off when using 'start' command (by itself)
iorapd depends on pm in system_server, so turn it off too when we
turn off system_server with the 'stop' command.

Bug: 153964298
Test: adb shell stop
Test: adb shell start
Change-Id: I08390472b1e1b969d0380843efa1bbd35b194250
2020-04-16 14:24:45 -07:00
Steve Muckle
64a553451a toolbox: add modprobe
Add an implementation of modprobe based on libmodprobe.

Change-Id: I85ba440766406fe6ca7e90bec204d06632785a66
2019-08-06 13:58:13 -07:00
Elliott Hughes
63b07755c7 toolbox: drop NetBSD grep for toybox grep.
Test: toybox grep tests
Change-Id: Ifb99980cc4d0a4d843a82671b2e2eaad67829e5c
2019-07-08 14:29:12 -07:00
Tom Cherry
65a1ee83a8 toolbox: add setprop, start, and stop
Move these from toybox as they're Android specific and more easily
maintained here.

A few changes during the conversion:
* Report error in setprop if value is not a UTF8 string; this would
  previously fail only after attempting to set the property
* Inform users to check dmesg for further failure messages for all
  three programs
* Only start/stop zygote_secondary if the device is not single arch

Bug: 117321744
Bug: 133901248
Test: setprop works, start and stop work on single and multi-arch.

Change-Id: Id2194cf2b65221bde38aff91f0e86b33edb37f42
2019-06-06 11:20:29 -07:00
Elliott Hughes
0865266048 Remove r in R.
Obsoleted by toybox `devmem` instead.

Test: builds
Change-Id: I35c1ed2cfa9b3073cab405cfaf3c989fb2a72aa2
2019-04-04 10:45:12 -07:00
Elliott Hughes
bfd9d63c74 grep: fix ASan heap-buffer-overflow.
Like the regular fgetln(), grep_fgetln() doesn't NUL-terminate the
string, which regexec() doesn't like. ASan just gained the ability to
intercept regexec(), which is why we didn't find this previously.

Bug: http://b/129089665
Test: adb shell grep -R /system -e "abc"
Test: toybox grep tests
Change-Id: Id707cea66a873b83bd763a3dcdf726ac7d062ce0
2019-04-01 10:58:38 -07:00
Elliott Hughes
720c1ecc90 BSD grep: sync with upstream.
No significant changes, but this does get rid of our local modifications.

Bug: http://b/129089665
Test: builds
Change-Id: Ie6e3cc2198c302fc998fe6fcf027661e5dca88f0
2019-03-28 14:29:00 -07:00
Petri Gynther
7c71e06f8e toolbox: make "r" available for /vendor
Make "r" package available for /vendor, so that we can easily add:

PRODUCT_PACKAGES_DEBUG += r.vendor

in device/google/<device>/device.mk

Change-Id: I46c23a85c95444083b8e4b68961c541d9af9b216
2019-03-01 17:51:56 -08:00
Gary Bisson
8cbf6bb535 toolbox: getevent: disable stdout buffering
So that the getevent output can be redirected and still be responsive
when events occur.

A good example is when using 'adb shell getevent' command, this latter
would only display the events when the buffer is full. With this patch
as soon as an event is received/printed, it is flushed to stdout.

Change-Id: I77eee96ed1aa59bf8d82f17eab666976ce966def
Signed-off-by: Gary Bisson <gbisson@essential.com>
2019-01-15 16:42:59 +01:00
Nick Kralevich
38e9f2320a getevent: O_RDWR -> O_RDONLY | O_CLOEXEC
No need to open the device read write. Just open it read-only.

This is a partial redo of
https://android-review.googlesource.com/c/platform/system/core/+/334583
which was reverted in
https://android-review.googlesource.com/c/platform/system/core/+/342483

Bug: 30861057
Test: ran getevent, saw correct output, played with device
Change-Id: I426efd68f39dcd97d3ee23c13ed1a9ed96cb4c2e
2018-08-24 12:16:17 -07:00
Elliott Hughes
8100d05778 Move back to BSD grep, and make it available for recovery too.
Bug: http://b/111849261
Bug: https://bugs.exim.org/show_bug.cgi?id=2294
Test: manual
Change-Id: Ia4f67b9f803c4f039d170f6d015a1bd2bb0ef23d
2018-08-01 10:35:46 -07:00
Elliott Hughes
f9408d5cdf Revert "Switch to PCRE grep."
This reverts commit 90a018a87a.

Not a clean revert because things have changed slightly, and I'm sticking
with the egrep/fgrep shell scripts for now.

Bug: http://b/111849261
Bug: https://bugs.exim.org/show_bug.cgi?id=2294
Test: manual
Change-Id: I72ae637c84f0eb1c2b5291db73ebff1628d54110
2018-07-26 14:52:45 -07:00
Treehugger Robot
c50fe3dc54 Merge "newfs_msdos: switch to external/newfs_msdos." 2018-06-20 19:06:59 +00:00
Elliott Hughes
76858a06d0 newfs_msdos: switch to external/newfs_msdos.
Bug: http://b/29899852
Test: builds
Change-Id: Iecd80d0c64cb5eec4c76ba4bce775508ee45df49
2018-06-13 13:21:24 -07:00
Jiyong Park
011ee12b1d Shared libs are supported in recovery mode
adbd has been built as a static executable since the same binary was
copied to the recovery partition where shared library is not supported.
However, since we now support shared library in the recovery partition,
adbd is built as a dynamic executable.

In addition, the dependency from adbd to libdebuggerd_handler is removed
as debuggerd is handled by the dynamic linker.

A few more modules in /system/core are marked as recovery_available:
true as they are transitive dependencies of the dynamic linker.

This change also includes ld.config.recovery.txt which is the linker
config file for the recovery mode. It is installed to /etc/ld.config.txt
and contains linker namespace config for the dynamic binaries under
/sbin.

Bug: 63673171
Test: `adb reboot recovery; adb devices` shows the device ID
Test: Select 'mount /system' in the recovery mode, then `adb shell`.
$ lsof -p `pidof adbd` shows that libm.so, libc.so, etc. are loaded from
the /lib directory.

Change-Id: I363d5a787863f1677ee40afb5d5841321ddaae77
2018-06-10 08:32:24 +09:00
Dan Willemsen
a228822c7d Compile toolbox's newfs_msdos for the host
For potential use with build/make/tools/fat16copy.py

Bug: 63035155
Test: mmma system/core/toolbox; newfs_msdos
Change-Id: I8ad50b8c181fc4ec21e191ec9fea8e9aa11d2d9b
2018-05-02 13:14:51 -07:00
Elliott Hughes
90a018a87a Switch to PCRE grep.
Bug: http://b/77150016
Test: boots, manual testing
Change-Id: I377ca42ed9783edcceab4daabe43e993ef74e837
2018-04-23 17:00:54 -07:00
Elliott Hughes
21ceafbaac Remove BSD dd.
Bug: N/A
Test: builds
Change-Id: Id80364241434abfc216149b4ce7440cef700abef
2018-04-20 17:55:44 -07:00
Elliott Hughes
8591440fe2 Lose dd to toybox.
Just the symlink for now. If this sticks, I'll come back to remove the code.

Bug: N/A
Test: `toolbox dd --help`
Change-Id: I9b967e9246f42db0d1f48d9d147c538d57fb3bc8
2018-04-20 13:34:20 -07:00
Elliott Hughes
16b82b7e24 Build toolbox with _FILE_OFFSET_BITS=64.
32-bit devices still exist...

Bug: http://b/72335947
Test: builds
Change-Id: Ia644640f19ad9d9160554e3fe329b3ce8e585c66
2018-01-22 16:15:55 -08:00
Tom Cherry
8573b55f0f getprop: add -T option to return a property's type
Bug: 70858511
Test: Return property types correctly
Change-Id: I506582d88c12a7f52d699635a41b24de4bc80289
2018-01-12 11:26:46 -08:00
Tom Cherry
91094e06ce Reland: Add getprop to toolbox
Add a non-toybox version of getprop, so that we can interface with the
new C++ PropertyInfoAreaFile class to return property context
information.

Bug: 36001741
Test: Compared toolbox getprop results with toybox getprop
Change-Id: I4e90aa5b843cb5cfcbe85f05f23ae8e22729b26e
2018-01-10 11:26:24 -08:00
Tom Cherry
ea4c7d5727 Merge "Add toolbox to vendor" 2018-01-10 18:14:17 +00:00
Elliott Hughes
4e4ab4ae72 Just check in tools.h.
Bug: N/A
Test: builds
Change-Id: Ia08465799854a85da59c9fb9f5448aab11f81887
2018-01-09 14:55:36 -08:00
Tom Cherry
6fb3dcaa5f Add toolbox to vendor
In preparation for adding getprop to toolbox

Test: toolbox is present in vendor
Change-Id: I8f2f7f8359902e84c14cc0c4adf349475d1d7aa7
2018-01-09 13:21:01 -08:00
Tom Cherry
e69ba761a3 Revert "Add getprop to toolbox"
This reverts commit c73497e17a.

Change-Id: Id6b84c86781a6ad7b675c10f142c3daa4117ec46
2018-01-09 15:53:00 +01:00
Dan Willemsen
a852f95b53 Convert toolbox to Android.bp
This drops the *TOOLS automated logic, though since there are only
three tools now, that seems less important. It would have been possible
to implement that logic in a Go plugin, but that seems like a lot of
overkill to fix a few duplicated entries.

See build/soong/README.md for more information.

Test: mmma system/core/toolbox
Test: List of installed files is the same
Test: input.h-labels.h and tools.h are the same
Change-Id: I9753083c3f689e689e40001b998b39ad20509598
2018-01-08 15:03:21 -08:00
Tom Cherry
c73497e17a Add getprop to toolbox
Add a non-toybox version of getprop, so that we can interface with the
new C++ PropertyInfoAreaFile class to return property context
information.

Bug: 36001741
Test: Compared toolbox getprop results with toybox getprop
Change-Id: I5f98f9e895d0620a2d9686bc0608490e7d9c3120
2018-01-08 12:36:44 -08:00
Elliott Hughes
3289b9c928 Merge "Add OWNERS." 2017-12-07 23:21:26 +00:00
Elliott Hughes
693d63f9cf Add OWNERS.
Bug: N/A
Test: N/A
Change-Id: Ie785058c0f5eb9b4086c98ccba6e63e3ed411b65
2017-12-07 13:30:03 -08:00
Ivan Lozano
f4dafbc836 Disable integer overflow sanitizer in grep.
Disables integer overflow sanitization in grep on integer sanitized
builds.

Bug: 30969751
Test: Compiles.
Change-Id: I2668ef6f2261a86f17d2a0f04d5ec7a3c0336ff1
2017-12-04 14:47:49 -08:00
Chris Fries
4a16646c95 Revert "delete toolbox/r.c"
This utility is always useful during device bringup, so let's bring it
back for debug builds.

This reverts commit 8a475f7e4a.

Change-Id: Ic4041afe538663f1e201ee1341dee247ab0d5ba2
2017-11-02 10:03:10 -05:00
Treehugger Robot
23bcbf040d Merge "Add building and installing of grep for vendor." 2017-06-16 23:24:32 +00:00
Erik Staats
0c3b1bd2a5 Add building and installing of grep for vendor.
Bug: 38240024
Test: Verified that grep is installed in /vendor/bin. See details in
testing done comment in https://android-review.googlesource.com/412061 .
Change-Id: I06007014779310bc24c65f7343111c5217ba6ff0
2017-06-15 15:04:41 -07:00
Elliott Hughes
c286f47dd1 Remove <sys/mtio.h> workaround.
Bug: N/A
Test: builds
Change-Id: I4f2f615720639cb6ec4ac8a6b08c5907008f98ee
2017-06-14 17:17:16 -07:00
Yifan Hong
49641ba865 libtoolbox_dd / grep: Android.mk -> bp
Bug: 37512442
Test: links
Change-Id: I98b2b463a69b065eff2bea562ce6be50f8a12341
2017-05-22 18:08:02 -07:00
Elliott Hughes
be9024dfbb This code has moved to toybox proper.
Bug: http://b/36653902
Test: ran toybox tests
Change-Id: If0f858121fa29b49fe85c3c21eacd8d5c55fb57b
2017-05-03 22:56:10 -07:00
Elliott Hughes
455567f78c Add a reasonably full implementation of gzip/gunzip/zcat.
Bug: http://b/36653902
Test: ran tests
Change-Id: Ibda577ba1d2aea5c4796eb632edd4c6d5e50592e
2017-04-10 10:56:40 -07:00
Michael Wright
14667c19cd Revert "Only allow system to write to existing input nodes."
This reverts commit 344e929e6d.

Bug: 35301292
Change-Id: Ib6805c986c0aa88d14652de59ad4602b1cce8b56
2017-02-21 17:12:59 +00:00
Michael Wright
344e929e6d Only allow system to write to existing input nodes.
This prevents the shell user from injecting input as if it were coming
from an existing input device, which in turn makes it easier for malware
/ abuse analysis to detect when someone is injecting input via the
command line vs a real user using a device.

(cherrypick of 95637eb2a332b9a09914b1bf32c10fccfba4a175.)

Bug: 30861057
Test: ran getevent, saw correct output, played with device
Change-Id: Ib53eea1b7767f25510b5d36fe6109101a9fad8e0
2017-02-09 14:45:25 -08:00
Nick Kralevich
8a475f7e4a delete toolbox/r.c
/dev/mem has been turned off on all Android kernels (b/19549480). This
utility cannot be used.

Test: android compiles.
Change-Id: I500021f224febb15dd8bfe6e1f6e5c398fe6f552
2016-11-29 15:45:11 -08:00
Ting-Yuan Huang
1c2f612c18 toolbox: exit when failed to allocate buffer for ioctl
This is a "shouldn't happen" case.

Test: make WITH_TIDY=1 mmma system/core/toolbox
Change-Id: I51e44e17837b03d6df6f8c4c3e1aeab8253e094d
2016-11-22 15:33:34 -08:00
Ting-Yuan Huang
58da81d987 toolbox: fix memory leak
free img

Test: make WITH_TIDY=1 mmma system/core/toolbox
Change-Id: I2f8feff0eddca763ee4e7fc9867480af60c8a911
2016-11-15 16:27:03 -08:00
Elliott Hughes
36e0d390a2 Rely on the platform -std default.
Bug: http://b/32019064
Test: builds
Change-Id: I18a1d816d63b64601485045070851f32d44e85eb
2016-10-10 14:31:12 -07:00
Elliott Hughes
c733a763c0 Lose sendevent to toybox.
Change-Id: I460b240c9cec0b0e966ab81ea6fdb0deb61c21bc
2016-07-15 14:17:28 -07:00
Treehugger Robot
80beb506cf Merge "Fix the generated getevent labels." 2016-06-29 23:43:15 +00:00
Elliott Hughes
b22b9987a8 Fix the generated getevent labels.
Some of the less-used stuff stayed behind in input.h, so we need to
parse both files.

Change-Id: Iff2b6e3fc4f5a6584169d12f16427b4f235da21a
Test: manual inspection of the generated file.
2016-06-29 14:12:29 -07:00
Elliott Hughes
50f39ddb49 Lose start/stop to toybox.
Change-Id: Ifd918a40616ec55fd3e782423fba67e0183bb8f3
2016-06-24 15:02:03 -07:00
Elliott Hughes
01e5a6c971 Remove more obsolete MTD stuff.
Bug: http://b/29250988
Change-Id: Ic2d0514fcdbe26526e87bc681b71efcc90eda678
Test: still builds.
2016-06-24 09:13:51 -07:00