OSDN Git Service
Elliott Hughes [Mon, 18 Jul 2016 03:02:10 +0000 (20:02 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: I7bc7dbd93d4227715c572e31025bb16d49356ab8
Rob Landley [Sun, 17 Jul 2016 07:14:35 +0000 (02:14 -0500)]
The recent option parsing changes broke the multiplexer, because the "toybox"
command was trying to parse their options and failing. (Commands
that aren't just disabled but have no option string even in the allyesconfig
case need an OPTSTR of 0.)
This is probably only a partial fix, there's some design work to think through
here.
Elliott Hughes [Fri, 15 Jul 2016 22:14:33 +0000 (15:14 -0700)]
Remove sendevent from the Android roadmap.
Also update the list of things Android builds from pending, which has
shrunk.
Elliott Hughes [Fri, 15 Jul 2016 23:31:22 +0000 (16:31 -0700)]
Add sha224sum, sha256sum, sha384sum, and sha512sum.
All implemented by libcrypto.so, so basically free.
Change-Id: I02e5492d197631222106e1c17bc29fded1dd8f7a
Elliott Hughes [Fri, 15 Jul 2016 21:19:07 +0000 (14:19 -0700)]
Switch to toybox sendevent.
Change-Id: I4dbe0f946fab36dc6054c98a9fcd92b96bf7385c
Elliott Hughes [Fri, 15 Jul 2016 17:14:33 +0000 (10:14 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: I02968eafb038766a5190e0576bf810633e9c4d50
Rob Landley [Fri, 15 Jul 2016 09:51:56 +0000 (04:51 -0500)]
Fix non-library md5sum build. (Oops.)
Rob Landley [Fri, 15 Jul 2016 09:45:08 +0000 (04:45 -0500)]
Add optional openssl accelerated versions of hash functions, loosely based on
a patch from Elliott Hughes, who said:
[PATCH] Add support for libcrypto for MD5/SHA.
Orders of magnitude faster (for architectures where OpenSSL/BoringSSL
has optimized assembler).
Also adds sha224sum, sha256sum, sha384sum, and sha512sum for folks
building with libcrypto.
The fallback portable C implementations could easily be refactored
to be API-compatible, but I don't know whether they'd stay here or
move to lib/ so I've left that part alone for now.
Rob Landley [Fri, 15 Jul 2016 09:39:35 +0000 (04:39 -0500)]
Don't close stdin when loopfiles reads "-".
Rob Landley [Fri, 15 Jul 2016 07:50:15 +0000 (02:50 -0500)]
Somebody asked a FAQ on irc, so answer it.
Elliott Hughes [Thu, 14 Jul 2016 00:00:58 +0000 (17:00 -0700)]
Add Android's "sendevent".
The lack of support for named constants is not a regression relative
to the toolbox implementation.
Rob Landley [Thu, 14 Jul 2016 21:53:33 +0000 (16:53 -0500)]
Add -c to md5sum and sha1sum.
Elliott Hughes [Wed, 13 Jul 2016 18:59:42 +0000 (11:59 -0700)]
Increase ps' default RSS and VSIZE widths.
This is enough for everything on Android and everything except Java
on my desktop. Even desktop Chrome fits!
Rob Landley [Wed, 13 Jul 2016 18:46:50 +0000 (13:46 -0500)]
Bugfix: suffixless string was feeding terminating NUL to strchr() and matching.
Rob Landley [Tue, 12 Jul 2016 20:48:25 +0000 (15:48 -0500)]
Implement NOP find -noleaf
Rob Landley [Tue, 12 Jul 2016 19:51:51 +0000 (14:51 -0500)]
Convert atolx() and friends to use long long internally. Update design.html
to use this (and tail) as examples of simplicity of implementation winning
and losing.
Elliott Hughes [Mon, 11 Jul 2016 18:44:51 +0000 (11:44 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: I446cfc9f3afd6b76c2dc448119bfecd78f511ea8
Elliott Hughes [Fri, 8 Jul 2016 17:19:23 +0000 (10:19 -0700)]
Add file(1).
Shows bitness, arch, Android API level (based off crtbrand.o), the BuildID
note, and whether or not the ELF file is stripped.
/system/bin/ndc: ELF shared object, 64-bit LSB arm64, dynamic (/system/bin/linker64), for Android 23, BuildID=
b0dbcbd074276683f06dfe65740411dd, stripped
Change-Id: I7d3d0de8c78c646f07ae1054719dc40075ece498
Elliott Hughes [Fri, 8 Jul 2016 04:48:33 +0000 (21:48 -0700)]
dd improvements.
Support hex (requested by users).
Support status=noxfer and status=none (requested by users).
Fix status output.
Clarify large numbers in --help output.
Use O_TRUNC rather than ftruncate unless we're also seeking.
New tests.
Also partial cleanup (reuse of existing code, removal of non-GLOBALS globals,
and merge dd_main and do_dd).
Elliott Hughes [Fri, 8 Jul 2016 02:32:34 +0000 (19:32 -0700)]
Fix typo in chattr test.
Elliott Hughes [Fri, 8 Jul 2016 00:02:37 +0000 (17:02 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: I4ea9e215a47aa00990b4acf3af206e4a8bb03a28
Rob Landley [Wed, 6 Jul 2016 00:36:00 +0000 (19:36 -0500)]
Fix generated/make.sh. (Quotes in TOYBOX_VERSION need to wind up in
resulting macro.)
Elliott Hughes [Tue, 5 Jul 2016 22:05:09 +0000 (15:05 -0700)]
Implement xxd -s.
Elliott Hughes [Tue, 5 Jul 2016 20:39:42 +0000 (13:39 -0700)]
Don't try to guess the build id type in file(1).
They're really just arbitrary byte sequences of arbitrary length.
Sure, a 20-byte sequence is _probably_ a SHA-1, but there's no way
to know, so let's stop pretending...
Rob Landley [Tue, 5 Jul 2016 03:25:52 +0000 (22:25 -0500)]
Fix chattr and date tests.
Rob Landley [Mon, 4 Jul 2016 13:32:42 +0000 (08:32 -0500)]
Now that we're using the adjusted option string, need to skip placeholders in [groups].
Rob Landley [Mon, 4 Jul 2016 07:59:09 +0000 (02:59 -0500)]
Fix a bug (octal digits are 0-7, not 0-8) and deal with a case where posix
is explicitly outright insane (%b handles octal escapes differently for no
obvious reason).
Rob Landley [Mon, 4 Jul 2016 03:14:40 +0000 (22:14 -0500)]
Promote file.
Elliott Hughes [Sat, 2 Jul 2016 19:53:40 +0000 (12:53 -0700)]
Improve file(1)'s ELF support.
Read any PT_NOTE sections to look for NT_GNU_BUILD_ID or Android API
level notes. I deliberately didn't NT_GNU_ABI_TAG because it's noisy --
every Linux executable has one -- but not something most command-line
users will have any use for. (And you can ask readelf(1) anyway.)
Also read the section headers to implement "stripped"/"not stripped".
This patch removes "uses %d libs" because it was actually just counting
dynamic sections in the ELF file, and there are only 0 or 1 of those in
a valid ELF flie. (If you really want this functionality, you have to
*parse* the dynamic section looking for the DT_NEEDED entries. But that's
more of a job for readelf(1) than file(1).)
Rob Landley [Sun, 3 Jul 2016 21:05:12 +0000 (16:05 -0500)]
Promote netsat, and move ifconfig, netcat, and rfkill to new toys/net directory.
Rob Landley [Sun, 3 Jul 2016 20:51:00 +0000 (15:51 -0500)]
More netstat cleanup (inline display_data)
Rob Landley [Sat, 2 Jul 2016 16:42:36 +0000 (11:42 -0500)]
Next round of netstat cleanup.
Rob Landley [Fri, 1 Jul 2016 01:48:22 +0000 (20:48 -0500)]
Add patch -d and --dry-run
Rob Landley [Fri, 1 Jul 2016 01:41:07 +0000 (20:41 -0500)]
Fix option parsing infrastructure bug.
In main.c: used adjusted string with placeholers for removed options (so flag
values don't move based on config, allowing FORCE_FLAGS to work).
In scripts/mkflags.c: test was wrong, a bare longopt never matches a single
letter command, but it was treated as always matching when comparing
allyesconfig vs current config to determine which options were disabled, so
there was a corner case that got the flag values wrong.
Rob Landley [Thu, 30 Jun 2016 15:39:41 +0000 (10:39 -0500)]
Teach wc to do -cm together. Fix testsuite so TEST_HOST passes too.
Rob Landley [Thu, 30 Jun 2016 15:39:23 +0000 (10:39 -0500)]
Add NOSPACE=1 to allow tests to pass with diff -b
Rob Landley [Thu, 30 Jun 2016 15:37:35 +0000 (10:37 -0500)]
Use libbuf instead of stack buffer.
Rob Landley [Wed, 29 Jun 2016 22:51:03 +0000 (17:51 -0500)]
Remove unused argument from do_lines()
Elliott Hughes [Wed, 29 Jun 2016 20:57:30 +0000 (13:57 -0700)]
Remove 'start' and 'stop' from the Android roadmap.
Elliott Hughes [Fri, 24 Jun 2016 16:37:59 +0000 (09:37 -0700)]
Update Android section of roadmap.
nandread was MTD-only, and we don't support MTD any more.
Elliott Hughes [Wed, 29 Jun 2016 18:45:39 +0000 (11:45 -0700)]
Switch to toybox start/stop.
Change-Id: I0c89f73d66d3df80e289a7c6447b76f7d578ab8a
Elliott Hughes [Tue, 28 Jun 2016 21:20:54 +0000 (14:20 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: Ia675ae28c2ce58dfbe0293394f091747b4d7f11c
Elliott Hughes [Mon, 27 Jun 2016 21:51:18 +0000 (14:51 -0700)]
Fix iteration for start/stop without arguments.
Rob Landley [Tue, 28 Jun 2016 06:54:01 +0000 (01:54 -0500)]
Fix a "may be used uninitialized".
Elliott Hughes [Mon, 27 Jun 2016 15:26:03 +0000 (08:26 -0700)]
Fix start.c build and add error reporting.
Rob Landley [Sat, 25 Jun 2016 19:57:39 +0000 (14:57 -0500)]
Code style pass.
Elliott Hughes [Sat, 25 Jun 2016 19:21:35 +0000 (14:21 -0500)]
new Android toys: start/stop
Elliott Hughes [Wed, 22 Jun 2016 22:55:35 +0000 (15:55 -0700)]
Update Android section of roadmap.
top switched over a week or two back, and log switched today.
Elliott Hughes [Wed, 22 Jun 2016 22:50:51 +0000 (15:50 -0700)]
Remove android/log's "default" priority.
It turns out that "default" goes nowhere. Whereas "silent" actually shows
up in the log. So document "silent" (which we already supported) but
remove support for "default".
Also make the spacing between levels in the help more regular; it looks
weird being in columns when there's only one row!
Elliott Hughes [Wed, 22 Jun 2016 19:25:11 +0000 (12:25 -0700)]
Switch to toybox log.
Change-Id: I093ee85ca4fc862f45f6166f1a63cada9e5a4eb7
Elliott Hughes [Wed, 22 Jun 2016 17:26:11 +0000 (10:26 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: Ifa85ce6790aef1838c29d521b3fdd23d7e8728d7
Rob Landley [Tue, 21 Jun 2016 21:10:49 +0000 (16:10 -0500)]
Attempt at cleanup of log.c, but I don't have a build environment for it so...
Elliott Hughes [Tue, 21 Jun 2016 20:32:42 +0000 (15:32 -0500)]
new Android toy: log
Rob Landley [Sun, 19 Jun 2016 12:07:44 +0000 (07:07 -0500)]
Last commit depends on new lib code I forgot to check in. (Oops.)
Rob Landley [Sun, 19 Jun 2016 12:07:15 +0000 (07:07 -0500)]
Next round of diffstat cleanup.
Elliott Hughes [Fri, 17 Jun 2016 22:51:25 +0000 (15:51 -0700)]
Make it clearer that CMD is the thread name.
It should come as no surprise to those who followed the development of
this that it's not well known which of the various names is actually the
thread name. Adding "thread" to the ps --help output seems like a good
idea.
I'm also assuming that "stat2" was meant to read "stat[2]", since that's
how it mostly appeared on the list while discussing this. Still fits in
80 columns.
Rob Landley [Wed, 15 Jun 2016 20:47:01 +0000 (15:47 -0500)]
Add readlink0() and readlinkat0() which null terminate the data.
Rob Landley [Wed, 15 Jun 2016 16:43:48 +0000 (11:43 -0500)]
The glibc bug at https://sourceware.org/bugzilla/show_bug.cgi?id=17829
continues to get worse, and now can't handle INT_MAX/2 either. So our
first workaround _also_ broke.
But posix says "A negative precision is taken as if the precision were
omitted." and that _doesn't_ trigger the glibc bug, so use that instead.
Elliott Hughes [Tue, 14 Jun 2016 01:52:28 +0000 (18:52 -0700)]
Switch to toybox top.
Change-Id: Ia282db6ff58ae22e01d60623bf316823c230e003
Elliott Hughes [Mon, 13 Jun 2016 21:23:15 +0000 (14:23 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: Ib0a2f504182aa42c934bd5fb99d6ed0afe8a2b8a
Rob Landley [Sun, 12 Jun 2016 08:35:57 +0000 (03:35 -0500)]
Lots of netstat cleanup, including a rewrite of the unix domain socket output.
(Ubuntu's netstat is left justifying the inode field, and they're wrong.)
Elliott Hughes [Sun, 12 Jun 2016 05:00:54 +0000 (22:00 -0700)]
Finish switching to dev_major/dev_minor.
7ca5dc4232b9ac5ee5cd25c8b5b33a58904cd251 didn't switch all callers over
to the new functions.
Rob Landley [Sat, 11 Jun 2016 00:00:25 +0000 (19:00 -0500)]
Missing parentheses. (Oops.)
Elliott Hughes [Fri, 10 Jun 2016 16:08:33 +0000 (09:08 -0700)]
Fix trailing whitespace bug in netstat.
Spotted while trying to diff netstat -nt against toybox netstat -nt.
Rob Landley [Fri, 10 Jun 2016 23:54:10 +0000 (18:54 -0500)]
xreadlink() only exits for memory allocation, it returns 0 if file not found.
(I forget who reported this bug, wasn't me.)
Elliott Hughes [Mon, 6 Jun 2016 22:41:39 +0000 (15:41 -0700)]
Update Android roadmap section.
We killed toolbox ioctl and wouldn't build a toybox one anyway.
Also admit that -- although toybox has a grep -- we're not actually using
it yet (and why we're not).
Rob Landley [Fri, 10 Jun 2016 23:37:41 +0000 (18:37 -0500)]
Shuffle arguments around (TNAME->NAME->COMM->CMD), working around posix
constraints while still trying to get sane behavior. Discard the old CMD,
move COMM to CMD, move the old NAME to COMM, and move TNAME to NAME.
Posix assumes argv[] is the only source of process name data, but Linux has
three sources (/proc/$PID/cmdline, /proc/$PID/exe, /proc/$PID/stat field 2)
and android uses multiple sources simultaneously to identify its processes
and threads.
Toybox ps also assumes that the field names displayed in the headers
can be fed to -o to get that output, which is an assumption posix's
ps spec clearly does not have. Before we were erring on the side of posix,
now we're erring on the side of sanity.
CMD now shows stat[2], all the time. The posix -f behavior change is now
just an ARGS=CMD alias in the -f default command line, which -o overrides.
(Before -f changed the behavior of -o CMD, which is closer to what
posix says but is _insane_ and we've stopped doing it.)
COMM now shows /proc/$PID/exe minus the path. (I'm aware posix says argv[0]
here, but it says argv everywhere.)
NAME is now argv[0] of $PID.
TNAME went away.
Both $COMM and $NAME show the data for $PID, which is a thread's parent
process when $TID != $PID.
Rob Landley [Fri, 10 Jun 2016 22:58:56 +0000 (17:58 -0500)]
Revert commit
e02e41373ea3, we're always initializing the TNAME string
field (that's the ptb/tb switching in get_ps) so it's never blank, so
this doesn't trigger. (Conditionally initializing it would save runtime
memory, but at the expense of more complex code.)
Elliott Hughes [Fri, 10 Jun 2016 16:42:10 +0000 (09:42 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Elliott Hughes [Thu, 9 Jun 2016 00:03:26 +0000 (17:03 -0700)]
HACK: restore Android ps behavior.
"NAME" is no longer doing what we want; "TNAME" is what "NAME" used to be,
except that "TNAME" implies -T. This patch switches us over to "TNAME",
disables the implicit -T.
Change-Id: I5553703d3939b24eaf39976162d2f75a591e1ce8
Kyungsik Lee [Thu, 9 Jun 2016 09:36:34 +0000 (18:36 +0900)]
Fix dangling link after cp command
"toybuf" should be initialized before calling symlinkat() or
dangling link could occur.
Elliott Hughes [Thu, 9 Jun 2016 15:21:00 +0000 (08:21 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: I703e4ec03f0eb2a5a215ac07407e094a92f0d161
Rob Landley [Thu, 9 Jun 2016 03:53:51 +0000 (22:53 -0500)]
Fix ps bug, last field wasn't expanding to width.
(Still fixing the fallout from that "Don't truncate number fields" logic rewrite.)
Rob Landley [Thu, 9 Jun 2016 01:30:08 +0000 (20:30 -0500)]
Change the TNAME behavior to "Show parent argv[0]. If that's blank, showour argv[0]. If that's blank, show [stat2]."
That way threads show their parents, parents show themselves, and
kernel threads show the [stat2] name.
Rob Landley [Tue, 7 Jun 2016 23:16:25 +0000 (18:16 -0500)]
Izabera pointed out that cmp -ls are contradictory.
Elliott Hughes [Mon, 6 Jun 2016 18:09:21 +0000 (11:09 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: I0e66b038cc5e409bb5c47dd851d37efc98e4a356
Paul Barker [Sat, 4 Jun 2016 14:05:49 +0000 (15:05 +0100)]
Fix TOYBOX_VERSION
The latest tagged version is 0.7.1.
Elliott Hughes [Sat, 4 Jun 2016 16:26:14 +0000 (09:26 -0700)]
Basic success/failure return from pgrep/pkill.
The man page says they also return 2 for syntax errors and 3 for "fatal
error: out of memory etc", but I don't know how to implement that and
don't need it (or have any reason to believe anyone needs it).
Bug:
29092208
Rob Landley [Sat, 4 Jun 2016 19:36:39 +0000 (14:36 -0500)]
ps: Show [stat2] for any otherwise blank process name field, expand TNAME to 27,
use generated constant for stat field parsing loop.
Rob Landley [Tue, 31 May 2016 22:33:23 +0000 (17:33 -0500)]
In cp -a, don't complain if non-root user can't chown, failure is expected.
Rob Landley [Mon, 30 May 2016 18:43:17 +0000 (13:43 -0500)]
Add output path to cp error message filenames.
Elliott Hughes [Fri, 27 May 2016 22:15:29 +0000 (15:15 -0700)]
Regenerate generated files.
Change-Id: I475d806d0d4c7a403a1b42aee4d5077bd4fe38df
Elliott Hughes [Fri, 27 May 2016 20:57:40 +0000 (13:57 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Rob Landley [Fri, 27 May 2016 19:54:27 +0000 (14:54 -0500)]
Add -o TNAME for android, fix display of last field (retain left justifification
when trimmed for screen width), make ARGS path trimming logic work with
spaces in path.
Elliott Hughes [Wed, 25 May 2016 21:43:56 +0000 (14:43 -0700)]
Stabilize another sort.
Unstable sorting means confusing diffs if you're checking in the generated
files. (Which I shouldn't be doing, but getting this bundle of random scripts
into Android's build system isn't going to be easy...)
Elliott Hughes [Wed, 25 May 2016 21:47:37 +0000 (14:47 -0700)]
Stop building toybox route.
From the commit that stopped creating the symlink:
We should remove the "route" command because its output is irrelevant and
misleading. This is because it only looks at the "main" routing table,
which is a last resort routing table that is a) trumped by all other
networks, b) empty except for directly-connected routes c) cannot even be
used by non-root users.
The proper way to understand device routing is to look at the output of
"ip rule" and "ip route", both of which are already available.
Example of how this is confusing:
$ adb shell route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
160.249.218.72 * 255.255.255.248 U 0 0 0 rmnet_data0
192.168.144.0 * 255.255.240.0 U 0 0 0 wlan0
These aren't guaranteed to be used. For example, according to the output
above 160.249.218.73 should go through rmnet_data0, but it doesn't:
$ adb shell ip route get 160.249.218.73
160.249.218.73 via 192.168.159.254 dev wlan0 src 192.168.159.164 uid 0
cache
Also, there is no default route. But the device has networking just fine:
$ adb shell ip route get 8.8.8.8
8.8.8.8 via 192.168.159.254 dev wlan0 src 192.168.159.164 uid 0
cache
Bug: http://b/
27603033
Change-Id: I40be0a7e2841144797a67f9aeb82b9097cec5400
Rob Landley [Wed, 25 May 2016 17:56:56 +0000 (12:56 -0500)]
Stand alone builds of OLDTOY should show help text for corresponding NEWTOY.
Elliott Hughes [Tue, 24 May 2016 22:27:49 +0000 (15:27 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Rob Landley [Tue, 24 May 2016 21:17:55 +0000 (16:17 -0500)]
The "show parent command path" commit changed the criteria for active nodes,
and the collate logic wasn't updated. (Oops.)
Elliott Hughes [Tue, 24 May 2016 16:13:35 +0000 (09:13 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Elliott Hughes [Tue, 24 May 2016 16:12:04 +0000 (09:12 -0700)]
Regenerate generated files.
Change-Id: I2014135856d6316a53c22cace2cc935cf65434f6
Elliott Hughes [Mon, 23 May 2016 17:46:47 +0000 (10:46 -0700)]
Fix remaining pkill tests.
I don't know that anyone cares, but these failures made me think I'd
broken something while testing the -SIGNAL patch.
The -s parsing wasn't taking into account that -s 0 is a special case,
and the -o test was assuming that pkill can tell the difference between
two processes started at roughly the same time. Hopefully there's
higher-resolution data available that can avoid the need for yet another
sleep in the tests.
Elliott Hughes [Mon, 23 May 2016 17:34:01 +0000 (10:34 -0700)]
Fix pkill -9.
This fixes the existing test. Internal Android bug
28877702.
I've left -l as-is, even though the desktop doesn't support that.
Rob Landley [Mon, 23 May 2016 00:44:10 +0000 (19:44 -0500)]
Don't truncate number fields for anything but right edge of screen, instead
let them overflow and try to reclaim extra space from later short fields.
Rob Landley [Sun, 22 May 2016 17:16:06 +0000 (12:16 -0500)]
Make -o COMMAND show parent command path for threads, and use saved length
calculations instead of doing strlen() on strings again to store lengths.
Rob Landley [Sun, 22 May 2016 17:00:16 +0000 (12:00 -0500)]
Comment and help text tweaks.
Rob Landley [Fri, 20 May 2016 19:28:13 +0000 (14:28 -0500)]
Add bufgetgrgid()
Rob Landley [Fri, 20 May 2016 12:32:51 +0000 (07:32 -0500)]
Make build dependencies more granular. This should fix the problem where
"make top; make ps" produces a ps that can't do -A because generated/obj/ps.o
didn't get rebuilt.
Rob Landley [Tue, 17 May 2016 17:10:07 +0000 (12:10 -0500)]
Add bufgetpwuid. (Repeated calls to getpwuid() are really expensive.)
Rob Landley [Mon, 16 May 2016 19:51:37 +0000 (14:51 -0500)]
Add top -O