OSDN Git Service
Rob Landley [Sat, 28 Jan 2017 23:40:55 +0000 (17:40 -0600)]
Whitespace.
Rob Landley [Sat, 28 Jan 2017 23:35:20 +0000 (17:35 -0600)]
modprobe: Small cleanup pass, described on the list.
Steve Muckle [Thu, 26 Jan 2017 01:51:40 +0000 (17:51 -0800)]
modprobe: use finit_module when possible
The finit_module() system call, introduced in Linux 3.8, reads the
module from a supplied file descriptor. This allows the kernel to do
security checks based on the file's location.
Steve Muckle [Mon, 9 Jan 2017 19:54:20 +0000 (11:54 -0800)]
modprobe: add -d option to specify module directory path(s)
While most systems have their kernel modules, modules.dep etc located at
/lib/modules/`uname -r` this is not always the case.
The -d option may be used to specify a nonstandard path for these files.
It may be used more than once to specify multiple directories where
these files may be found.
Elliott Hughes [Fri, 27 Jan 2017 20:54:25 +0000 (12:54 -0800)]
top -H is more useful if it shows thread names.
I knew that just showing the process name was a divergence from
traditional Android behavior, but I was curious to see whether anyone
cared. Bug reports show that they do. I've not made this conditional on
CFG_TOYBOX_ON_ANDROID on the assumption that this is more useful for
everyone else too. (Why are you asking for per-thread information if
you don't actually want to be able to identify individual threads?)
Why not _just_ show the thread name? Because on Android at least, every
process has lots of identically-named threads; everyone has GC threads,
everyone has JIT threads, and so knowing _just_ the thread name is
rarely useful.
Why show thread name first? Because the kernel limits thread names to 15
bytes plus a NUL, so any left-over space should go to the process name,
so that should come last.
Why call the thread name THREAD? Because "CMD" isn't obviously "thread
name" to folks who don't know how this is implemented behind the scenes.
This change also removes an incorrect "usage:" comment. None of the
other commands in this file duplicated their "usage:" lines, and this
copy wasn't even close to being correct.
Bug: http://b/
34610082
Elliott Hughes [Fri, 27 Jan 2017 18:54:11 +0000 (10:54 -0800)]
Minor Android roadmap update.
Rob Landley [Sat, 28 Jan 2017 22:33:13 +0000 (16:33 -0600)]
Remove s6 from roadmap. (It wasn't in status.html anyway, haven't updated
our comparison in years, and email with the maintainer convinced me it's
not a good yardstick for "what a traditional linux system expects to have".)
Rob Landley [Sat, 28 Jan 2017 22:27:44 +0000 (16:27 -0600)]
Answer another question.
Dimitry Ivanov [Wed, 25 Jan 2017 21:27:03 +0000 (13:27 -0800)]
Remove name length limit for system properties
Android O removes name length limit for system properties.
Use __system_property_read_callback instead of deprecated
__system_property_read in getprop and remove check for
property name length in setprop.
Test: adb shell setprop debug.test.very.very.long.property.name valueforpropertywithlongname
Test: adb shell getprop | grep debug.test.very.very.long.property.name
Bug: http://b/
33926793
Change-Id: I57ca99ea33283d069cd1b7b9f110ec9fb27f3d19
Rob Landley [Wed, 25 Jan 2017 22:23:58 +0000 (16:23 -0600)]
Promote microcom to net.
Rob Landley [Wed, 25 Jan 2017 21:53:58 +0000 (15:53 -0600)]
Switch escape charcter to ^] (ascii 29, doesn't conflict with emacs or joe).
Recognize full range of linux serial speeds (only error cfsetspeed returns
is invalid speed value).
Elliott Hughes [Sun, 15 Jan 2017 18:51:55 +0000 (10:51 -0800)]
Fix microcom command-line help and -X.
Elliott Hughes [Sat, 14 Jan 2017 21:12:13 +0000 (13:12 -0800)]
Add "microcom" to pending.
Our device bringup folks wanted a simple serial console, both on the
host and on the device. This is certainly enough to replace what I've
been using personally on the host.
I'd never heard of "microcom" until I asked the internets what busybox
users use, so I don't care what we call this or what the options are
called. (But would like to decide before it gets ossified in a million
factory test scripts and the like!)
The tool that this replaces for me defaulted to /dev/ttyUSB0, but since
I don't know whether that default would be useful for most other people
too, I left that out. Command-line history will solve my transition
problem.
Rob Landley [Sat, 14 Jan 2017 22:51:43 +0000 (16:51 -0600)]
Quick and dirty fix for CVE-2016-6321 but seriously this is in pending
for a reason and I need to completely rewrite it.
Rob Landley [Tue, 10 Jan 2017 01:25:07 +0000 (19:25 -0600)]
More pending shell tests.
Rob Landley [Wed, 4 Jan 2017 20:19:06 +0000 (14:19 -0600)]
Implicit function declarations are an error, not a warning.
(The switch to 64 bits screwed up varargs: everything used to be promoted to 32
bits, but now it's 32 bits or 64 bits depending on type declarations, so you
need the type declarations. Because promoting "char" arguments to 32 bits back
when a megabyte was a lot of memory was ok, but promoting everything to 64 bits
now that you can get 2 gigabytes of ram in a phone is unacceptable.)
Rob Landley [Wed, 4 Jan 2017 20:18:12 +0000 (14:18 -0600)]
Tweak install_airlock help text.
Rob Landley [Wed, 4 Jan 2017 20:16:03 +0000 (14:16 -0600)]
ftpget: implement -mMdDlL, put ftp transactions into their own function so -v
can show both output and reply lines.
Rob Landley [Wed, 4 Jan 2017 07:33:19 +0000 (01:33 -0600)]
First stab at ftpget/ftpput. (Documents a lot of options other than basic
upload/download that aren't implemented yet.)
Rob Landley [Wed, 4 Jan 2017 07:32:44 +0000 (01:32 -0600)]
Some lib fixes: mark xvfork() noinline, make xsendfile() return bytes copied,
make xsocket()'s returned fd CLOEXEC.
Rob Landley [Wed, 4 Jan 2017 07:14:07 +0000 (01:14 -0600)]
An option can't exclude itself, so "abc[-ab][!abc]" with "command -a -b"
shouldn't segfault falling off the end of the list trying to report a
nonexistent error condition.
Rob Landley [Mon, 2 Jan 2017 18:20:13 +0000 (12:20 -0600)]
Alas, the backup list archive went down because https://lwn.net/Articles/695695/
and although it was partially restored by https://lwn.net/Articles/699704/
that didn't include this list.
Elliott Hughes [Fri, 30 Dec 2016 19:19:08 +0000 (11:19 -0800)]
Remove unnecessary casts in stat.c, fix a claimed buffer length.
POSIX does have a name for the struct timespec in struct stat.
Elliott Hughes [Thu, 29 Dec 2016 02:26:55 +0000 (18:26 -0800)]
Stop lying to the compiler in modprobe's read_line.
sizeof(int) != sizeof(size_t) for LP64, leading to hilarity^Wcrashes.
Elliott Hughes [Tue, 27 Dec 2016 20:27:06 +0000 (12:27 -0800)]
Admit that getprop requires selinux.
The "lsm" portability stuff could abstract this away, but Android doesn't
need it, and getprop is meaningless on non-Android. (And if you're just
building with the NDK, on recent enough versions of Android you won't be
able to read most of the system properties anyway because access to them is
increasingly restricted by selinux.)
Elliott Hughes [Tue, 27 Dec 2016 20:17:50 +0000 (12:17 -0800)]
Switch to bionic <sys/system_properties.h>.
Removes the dependency on libcutils for everything except ps.
Rob Landley [Mon, 26 Dec 2016 18:10:29 +0000 (12:10 -0600)]
Move hostid to toys/example and have it "default n".
A "globally unique 32 bit number" is a concept the Linux world has outgrown.
Elliott Hughes [Sun, 25 Dec 2016 21:06:21 +0000 (13:06 -0800)]
log: use error_msg instead of perror_msg when errno is meaningless.
Rob Landley [Mon, 26 Dec 2016 03:22:23 +0000 (21:22 -0600)]
Add test for last sort commit.
wxj [Sun, 25 Dec 2016 07:58:10 +0000 (15:58 +0800)]
Fix a bug for sort. When the key_separator is not space, the sort commandline tool fails to sort by the 3rd,4th,etc column. For example: when you exec
$ sort -t',' -k 3n
on a file which cotains:
1,2,3,4
2,3,4,1
4,1,2,3
3,4,1,2
you got:
4,1,2,3
1,2,3,4
2,3,4,1
3,4,1,2
but the expected output should be:
3,4,1,2
4,1,2,3
1,2,3,4
2,3,4,1
The bug is due to the dependency of "isspace(str[end])" at line 113.
When searching for the non-space key_separator, the search stopped just at the position of first key_separator it met.
The bug can be easily fixed by adding "end++" when the search have found one separator and exit the for loop.
Rob Landley [Sat, 24 Dec 2016 20:06:12 +0000 (14:06 -0600)]
Cleanup: Have get_hostname() handle its own lookup failures. Inline is_prefix().
Kernel can handle 64k maximum segment size.
Rob Landley [Tue, 20 Dec 2016 22:40:38 +0000 (16:40 -0600)]
Add units for -atime and friends. (Also legacy -amin alias, but not in help text
because there's no -asec or -ahour.)
Rob Landley [Mon, 12 Dec 2016 03:12:18 +0000 (21:12 -0600)]
First cleanup pass on new dmesg.
Elliott Hughes [Fri, 9 Dec 2016 22:44:08 +0000 (14:44 -0800)]
Pass DIRTREE_PROC through the ps callbacks.
Rob Landley [Fri, 9 Dec 2016 03:47:15 +0000 (21:47 -0600)]
Have make airlock just warn about missing commands unless $PEDANTIC is sent.
Rob Landley [Fri, 9 Dec 2016 03:44:22 +0000 (21:44 -0600)]
Workaround for Centos' "which" complaining if it can't find the command
(instead of just producing no output on stdout like everybody else).
Rob Landley [Fri, 9 Dec 2016 03:29:00 +0000 (21:29 -0600)]
Add DIRTREE_PROC to skip non-numeric entries and make ps/top etc use it.
Rob Landley [Thu, 8 Dec 2016 05:30:56 +0000 (23:30 -0600)]
Documentation tweak.
Rob Landley [Thu, 8 Dec 2016 05:05:33 +0000 (23:05 -0600)]
Thinko in recent longopt commit.
Rob Landley [Thu, 8 Dec 2016 04:57:12 +0000 (22:57 -0600)]
Change error test to actually exit if first attempt to use .config fails.
Rob Landley [Thu, 8 Dec 2016 04:22:38 +0000 (22:22 -0600)]
People keep wanting to cross-compile from macs, where the stock sed is broken.
So use $SED to indicate the sed to use, and set it to 'gsed' if available.
Rob Landley [Thu, 8 Dec 2016 03:52:00 +0000 (21:52 -0600)]
Bugfix: configuring out a longopt confused the option parsing.
(This made ls -l not work when LS_COLOR was off.)
Rob Landley [Mon, 21 Nov 2016 22:47:23 +0000 (16:47 -0600)]
Have dirtree_notdotdot() pass through !node->parent so . and .. on the command
line aren't filtered out. Audited all the callers and removed redundant
calls, adjusted call sequence, etc. (And let rm _not_ do this, because posix.)
Rob Landley [Sat, 19 Nov 2016 17:16:50 +0000 (11:16 -0600)]
Bug report from Justin Cormack, tar was producing a warning to stdout that
screwed up "tar c" to stdout.
Rob Landley [Fri, 18 Nov 2016 21:15:39 +0000 (15:15 -0600)]
"printf %x 64" wasn't working right on 32 bit because a variable type was wrong.
Rob Landley [Tue, 8 Nov 2016 09:53:16 +0000 (03:53 -0600)]
Josh Gao pointed out that chmod -R . (and ..) didn't work.
Evgenii Stepanov [Mon, 31 Oct 2016 19:26:11 +0000 (12:26 -0700)]
Fix control flow integrity check failure in ps.
This fixes an indirect function call through a pointer of an
incompatible type.
See http://clang.llvm.org/docs/ControlFlowIntegrity.html for more
details.
Elliott Hughes [Fri, 28 Oct 2016 22:56:01 +0000 (15:56 -0700)]
Implement "dmesg -w".
Annoyingly, this means writing a new dmesg implementation that uses /dev/kmsg
rather than the klogctl system call. Worse, pre-3.5 kernels don't support
that, so we need to keep the old implementation around as long as we still
care about those kernels.
Since I'm here, add the fancy colors from modern dmesg and the -C flag.
Tested on Nexus 9's 3.10 kernel, an Ubuntu 3.13 kernel, and the
Nexus One's 2.6.35 kernel.
Rob Landley [Thu, 27 Oct 2016 04:52:55 +0000 (23:52 -0500)]
Izabera pointed out that split -b -l are exclusive.
Elliott Hughes [Tue, 25 Oct 2016 22:51:05 +0000 (15:51 -0700)]
Add fallocate -o.
Also improve error reporting.
Elliott Hughes [Tue, 25 Oct 2016 00:14:22 +0000 (17:14 -0700)]
Android O allows '@' in property names.
Bug: http://b/
32371104
Rob Landley [Mon, 24 Oct 2016 23:25:39 +0000 (18:25 -0500)]
Typos.
Rob Landley [Sat, 22 Oct 2016 23:15:09 +0000 (18:15 -0500)]
Tweak help text.
Rob Landley [Fri, 21 Oct 2016 04:14:39 +0000 (23:14 -0500)]
Announce 0.7.2.
Rob Landley [Fri, 21 Oct 2016 03:32:21 +0000 (22:32 -0500)]
Nothing in pending should "default y".
Rob Landley [Fri, 21 Oct 2016 03:30:58 +0000 (22:30 -0500)]
Nothing in pending should "default y".
Rob Landley [Fri, 21 Oct 2016 03:29:10 +0000 (22:29 -0500)]
Close to cutting a release and I don't want to have setfattr in defconfig
without getfattr, so I'm putting it back in pending for now.
Rob Landley [Thu, 20 Oct 2016 21:35:13 +0000 (16:35 -0500)]
Add special "touch -" behavior and require an argument.
Rob Landley [Thu, 20 Oct 2016 20:30:56 +0000 (15:30 -0500)]
Show driver for interface in ifconfig output.
Rob Landley [Thu, 20 Oct 2016 20:29:10 +0000 (15:29 -0500)]
Allow out and escout to be NULL in crunch_str()
Rob Landley [Thu, 20 Oct 2016 20:26:38 +0000 (15:26 -0500)]
Always regenerate config.h for now, so make single and make don't clash.
The problem is that .config and .singleconfig produce the same header file,
so checking that the header is newer than the .config file won't help if
it was last generated from the other file.
Rob Landley [Thu, 20 Oct 2016 01:51:28 +0000 (20:51 -0500)]
More touch tests, and a fix found by one. (The three -t formats can only
reliably be distinguished by checking length, because %H amd %m and such
can match different numbers of digits.)
Rob Landley [Tue, 18 Oct 2016 21:52:17 +0000 (16:52 -0500)]
Test infrastructure: collate make "test_single" and "make tests" into common
function, and add $C variable with an absolute path to the command being tested
(you need to call things like printf by path to avoid shell builtins, might as
well be consistent).
Rob Landley [Tue, 18 Oct 2016 21:28:47 +0000 (16:28 -0500)]
Add a printf test that shows a bug.
Rob Landley [Tue, 18 Oct 2016 09:10:01 +0000 (04:10 -0500)]
Unify touch -t and -d handling, allow posix's underspecified "time designator"
T to be a space instead (because the posix says so, no idea why), initialize
default values reliably including zeroing daylight savings time field (which is
handled inconsistently by libc and just screws stuff up).
Rob Landley [Tue, 18 Oct 2016 04:52:51 +0000 (23:52 -0500)]
A few more sed tests.
Rob Landley [Mon, 17 Oct 2016 23:32:35 +0000 (18:32 -0500)]
The recent --help infrastructure fiddling made "toybox --help unknown" segfault
because lookup failure left this->which NULL and error_exit() dereferenced it.
(Oops.)
Elliott Hughes [Tue, 11 Oct 2016 20:03:50 +0000 (13:03 -0700)]
Stop renaming the ADDR field to PC on Android.
It's causing confusion, and it's not obvious that anyone's relying on
it (and even if they are, let's try to find and fix them first).
Rob Landley [Tue, 11 Oct 2016 13:19:41 +0000 (08:19 -0500)]
Make netcat work with nommu and factor out poll() loop into net/net.c.
Rob Landley [Sun, 9 Oct 2016 20:35:56 +0000 (15:35 -0500)]
Izabera pointed out that ls defaults to -q when output is a tty.
Rob Landley [Sat, 8 Oct 2016 22:30:50 +0000 (17:30 -0500)]
Teach ps -w not to truncate any fields.
Rob Landley [Sat, 8 Oct 2016 22:27:12 +0000 (17:27 -0500)]
Evgenii Stepanov found a bug where argv0len was set wrong for threads
(no /proc/$PID/cmdline so setting was skipped and previous value retained),
which led to memcpy() with an overlapping source/dest range (annoying asan).
Fix: move temp variable and assignment outside the if() statement so we assign
zero if we can''t read the file.
Rob Landley [Wed, 5 Oct 2016 18:29:55 +0000 (13:29 -0500)]
Explain some generic argument parsing features in toybox --help.
Rob Landley [Tue, 4 Oct 2016 20:08:48 +0000 (15:08 -0500)]
Explain dlist_terminate.
Elliott Hughes [Fri, 30 Sep 2016 23:33:12 +0000 (16:33 -0700)]
Updated Android roadmap.
Since we're actually getting close to the end of the toolbox list,
expand the "other stuff" with everything that's currently in /system/bin
that could reasonably be replaced by toybox (and remove things that might
sound practical, but actually aren't). Also update the list of things
being built from pending.
Rob Landley [Mon, 3 Oct 2016 19:09:59 +0000 (14:09 -0500)]
David Hedges pointed out that interface names can be longer than 10 chars.
Rob Landley [Mon, 3 Oct 2016 03:41:55 +0000 (22:41 -0500)]
Add install_airlock target for hermetic build environment setup, and rebuild
headers during install to make other install targets robust against single
command builds between "make" and "make install" of multiplexer version.
Rob Landley [Sat, 1 Oct 2016 23:19:45 +0000 (18:19 -0500)]
du: 32 bit systems were maxing out at 2GB when they should max out at 2TB
(1<<32 blocks * 512 bytes, done with unsigned 64 bit math).
Rob Landley [Sat, 1 Oct 2016 20:52:00 +0000 (15:52 -0500)]
Move --version handling next to --help handling, so it applies to all commands.
Say "toybox" before version string. Tweak sed to preserve lie-to-autoconf.
Rob Landley [Fri, 30 Sep 2016 22:35:34 +0000 (17:35 -0500)]
sed -i run as root wasn't preserving ownership.
Elliott Hughes [Wed, 28 Sep 2016 18:00:30 +0000 (11:00 -0700)]
Accept extra ps arguments as additional pids.
POSIX says nothing, but traditional ps lets you say "ps 123" in addition
to "ps -p 123". (You can mix and match too: "ps -p 123,124 666 667" works
fine.)
Bug:
31778761
Elliott Hughes [Tue, 27 Sep 2016 19:20:41 +0000 (12:20 -0700)]
Show thread names with "ps -T" on Android.
Android uses NAME rather than CMD by default, but that's not what we
want with -T. Noticed because it broke systrace's reporting of thread
names (see https://developer.android.com/studio/profile/systrace.html).
Bug:
31741954
Rob Landley [Wed, 28 Sep 2016 20:13:41 +0000 (15:13 -0500)]
Make setns depend on TOYBOX_CONTAINER probed value.
Rob Landley [Wed, 28 Sep 2016 19:22:34 +0000 (14:22 -0500)]
Kernels between 2006 and 2010 (such as the one in Centos 6.6) provide unshare()
but not nsenter(). So probe for both.
Lipi C.H. Lee [Sun, 25 Sep 2016 23:55:53 +0000 (08:55 +0900)]
Changed xopen_stdin() to xopen_stdio().
Elliott Hughes [Mon, 12 Sep 2016 19:30:33 +0000 (12:30 -0700)]
Fix ls -lh.
The recent refactoring broke ls -lh by multiplying all sizes by 0
rather than 1.
Elliott Hughes [Tue, 13 Sep 2016 21:35:43 +0000 (14:35 -0700)]
Add ar archive support to file.
Elliott Hughes [Tue, 13 Sep 2016 20:55:59 +0000 (13:55 -0700)]
Add -h and -L to file.
On a toybox system, most of your bin directory is symbolic links.
Bug: http://b/
31294746
Rob Landley [Mon, 12 Sep 2016 04:55:36 +0000 (23:55 -0500)]
Izabera pointed out that "file -" was inconsistent (calling stat on "-" but
then reading from stdin if it detected a file). Fixed it so "-" always
means stdin and you have to say ./- to look at a local "-".
Did some whitespace tweaks while I was there...
Rob Landley [Tue, 6 Sep 2016 05:14:24 +0000 (00:14 -0500)]
Teach sed s/// how to handle [:space:] type sequences.
Or more accurately, s@[[:space:]@]@replace@ which can't treat the @ in
[] as a delimiter but has to know about nested [[]] to make that decision.
Rob Landley [Mon, 5 Sep 2016 05:55:24 +0000 (00:55 -0500)]
Replace loopfiles' failok with WARN_ONLY open flag.
Rob Landley [Mon, 5 Sep 2016 05:52:44 +0000 (00:52 -0500)]
Export notstdio() wrapper.
Rob Landley [Mon, 5 Sep 2016 05:32:38 +0000 (00:32 -0500)]
Fluff up cmp tests.
Rob Landley [Mon, 5 Sep 2016 00:13:31 +0000 (19:13 -0500)]
make test_cmp caused the make invocation to exit with an error because the
last test exited with nonzero status and the script preserved it. In the
current context, that's counterproductive.
Rob Landley [Sun, 4 Sep 2016 23:07:12 +0000 (18:07 -0500)]
Add comment so I don't undo and then redo a thing again.
Rob Landley [Sun, 4 Sep 2016 22:42:32 +0000 (17:42 -0500)]
Remove a chunk of copied header that hasn't been upated in a while.
Rob Landley [Sun, 4 Sep 2016 22:26:34 +0000 (17:26 -0500)]
Add openro() and WARN_ONLY flag so xopen() and friends can warn without exiting.
Rob Landley [Sun, 4 Sep 2016 22:18:31 +0000 (17:18 -0500)]
Switch help.c from #ifdef to if()
Rob Landley [Sat, 3 Sep 2016 20:41:55 +0000 (15:41 -0500)]
Move genericish function to lib.
Rob Landley [Sun, 28 Aug 2016 05:32:41 +0000 (00:32 -0500)]
Add tap support to tunctl.