Commit graph

583 commits

Author SHA1 Message Date
Treehugger Robot
f765947c47 Merge "toolbox: make all janitors the owners." am: 5f33339b2f am: 459b5d6350
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1351802

Change-Id: Iaae36f98c07c3b1aed137d5b0763d92e4c03f9fd
2020-07-13 18:10:13 +00:00
Treehugger Robot
5f33339b2f Merge "toolbox: make all janitors the owners." 2020-07-13 17:31:11 +00:00
Treehugger Robot
b0680f4a96 Merge "modprobe: add -s/--syslog flag" am: 14260d2314 am: ef4a78efbb
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1348924

Change-Id: If2f8a0975c46c321bc2ea84de5b3e29fa8462cea
2020-06-26 22:58:37 +00:00
Elliott Hughes
e81b00218a toolbox: make all janitors the owners.
There shouldn't be much activity in here, but getprop/setprop and
modprobe probably aren't going anywhere...

Test: treehugger
Change-Id: If5726dcb62a47549e10767c7a984614bcff8ea1f
2020-06-26 15:46:48 -07:00
Mark Salyzyn
63368beaba modprobe: add -s/--syslog flag
There is a desire to ensure that modprobe as a service can log to
kmesg to help triage issues, so add support for the -s or --syslog
flag to do so.

SideEffects:
- help goes to stdout instead of stderr.
- verbose flag once, sets DEBUG, twice, sets VERBOSE minimum.
- quiet flag sets WARNING minimum.

Bug: 159424228
Bug: 151950334
Test: use modprobe as a service to load modules, check logs
Change-Id: I884995f364b0fc604861797eb90d7225a372f864
2020-06-26 10:31:07 -07:00
Mark Salyzyn
28b6ea20ec Merge "modprobe: add --all=modules.load flag" am: 3d246cced8 am: f1ae0e66e3
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1346626

Change-Id: Ife797bebbdaf80f6d3aa71bd9d3d5f9033428573
2020-06-26 12:11:12 +00:00
Treehugger Robot
e7a17a6915 Merge "modprobe: switch to getopt_long for argument parsing" am: d894b463f1 am: f946ba79cf
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1348923

Change-Id: Ic4a81b57517064b7c2c6da73c402266dde3c2b2a
2020-06-25 18:07:26 +00:00
Mark Salyzyn
6c9a1e4d49 modprobe: add --all=modules.load flag
Add a means to specify the modules to load from a file, rather than
on the argument list by adding an optional argument to the --all flag.
This allows modprobe to be designated as a standalone service to load
a long series of modules in the background and be specified
separately.  The specified (module.load) file contains a newline
separate list of module names, and supports line comments using '#'
since this file may be maintained by a human or scripting that
requires tagging for regions of the file.

Bug: 159424228
Bug: 151950334
Test: use modprobe as a service to load modules
Change-Id: Id32641c7244e65848fca3a4a82c8d08b2042bf2f
2020-06-24 18:10:12 -07:00
Mark Salyzyn
3ad274be15 modprobe: switch to getopt_long for argument parsing
Add support for long options, and fit existing options to upstream
behaviors and extensions.  Fix some missing std::endl and
android::base::Join() usage.

Bug: 159424228
Bug: 151950334
Test: manually test long options work
Change-Id: Id792d87d4407628e706aeccecb6e2bce22bcad10
2020-06-24 18:10:12 -07:00
Treehugger Robot
1351fcce68 Merge changes I14ed0839,I59f9fde5 am: 4db1b12b3c am: 24d0e12b3e
Original change: https://android-review.googlesource.com/c/platform/system/core/+/1339607

Change-Id: I683998901098e58371f89ab5a71df89e57af67dc
2020-06-16 19:14:16 +00:00
Mark Salyzyn
703fb74fb5 modprobe: Use more inclusive language for modprobe and libmodprobe
blacklist is replaced with blocklist.

Test: none
Change-Id: I59f9fde5900b9aee82aca1eab4a6ded3d136063b
2020-06-15 12:51:38 -07:00
Ytai Ben-Tsvi
7d6af00aca 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
Merged-In: I39878b978b47a169c4fe446c43d7347809d15e06
2020-04-23 12:01:46 -07:00
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