Commit graph

565 commits

Author SHA1 Message Date
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
Elliott Hughes
cf75c1bf14 Lose log to toybox.
Change-Id: I42d792e79ed51fcc3c89f77d039d39417ead03c3
2016-06-22 12:33:33 -07:00
Elliott Hughes
4558428ae8 Lose top to toybox.
Change-Id: I625fad2c45a02bbc39125a4a10def8d74dd32cf7
2016-06-13 18:54:01 -07:00
Elliott Hughes
1f406e270f Remove toolbox ioctl.
Let's remove this convenient tool for attacking buggy kernels and see if
anyone with a legitimate use notices. I suspect most potential legitimate
users write a short C program instead anyway.

Bug: http://b/29128170
Change-Id: I14e8b8594902951fe0b94c9ce13baa2c4d7b9e6e
2016-06-04 08:12:34 -07:00
Dan Willemsen
ee2da03e26 Remove invalid uses of -l and -I
LOCAL_LDLIBS should only be used with -l flags for NDK and some host
libraries. Other uses should use LOCAL_SHARED_LIBRARIES.

LOCAL_LDFLAGS should not contain -l entries, they should be in
LOCAL_LDLIBS instead.

LOCAL_CFLAGS should not contain -I entries, those should use
LOCAL_C_INCLUDES instead.

Change-Id: Ic901aa14651572ac682166becd4f0cd86baecc34
2016-06-01 13:41:23 -07:00
Chih-Hung Hsieh
c713bce901 Fix misc-macro-parentheses warnings in init and other core modules.
Bug: 28705665
Change-Id: Ice67cebb8c42538f8fb9cf1756678f41a9d68a31
2016-05-18 18:11:49 -07:00
Elliott Hughes
eea3c0e601 Lose ps to toybox.
Change-Id: I890a453533e1b3066169738f55314f8813285c17
2016-05-04 15:20:02 -07:00