aboutsummaryrefslogtreecommitdiff
path: root/toys
AgeCommit message (Collapse)Author
2017-04-11Make fdisk buildable.Elliott Hughes
The argument to help_exit is a char*, not a FILE*.
2017-04-11Fix touch -a/-m (and add the missing tests).Elliott Hughes
utimensat takes atime in [0] and mtime in [1], but since we're overwriting with UTIME_OMIT, we actually want to flip the comparison so -a blats 1 and -m blats 0.
2017-04-10Add "uudecode -o -" support.Elliott Hughes
busybox uudecode supports this, and POSIX explicitly mentions it (albeit only in the "STDOUT" section). Plus Android doesn't have /dev/stdout and /dev/stdin, so this lets us rewrite the uudecode tests so they pass on Android too.
2017-04-08Fix the ls -m test (which is just a whitespace issue, but eh).Rob Landley
While we're at it, ls -m wordwrap was one column early.
2017-04-03Trivial cleanup. (Whitespace, brackets, and remove unnecessary typecasts.)Rob Landley
2017-04-03Add gzip support. (Doesn't show source OS and timestamp, but reporting themRob Landley
isn't obviously useful.)
2017-04-03Implement dmesg -T.Elliott Hughes
Also refactor so that legacy mode gets all the new functionality too, and add -S to make it easier to test legacy mode on 3.5 or newer kernels (at least on the host; on Android the syslog(2) system call is no longer allowed). Bug: http://b/36090178
2017-03-28Don't try to implement %s, we have @seconds, strptime() in libc tendsRob Landley
not to have it, and implementing our own means a pattern like "Time %%%s%%" is expensive to handle the corner cases of.
2017-03-28Replace chkmktime() (which produces false positive normalization failures)Rob Landley
with range checks for seconds, minutes, hours, day of month, and month.
2017-03-28ps: don't query for terminal size if not a tty.Josh Gao
`ps -A | cat` shouldn't have different output depending on the size of your terminal window.
2017-03-27Fix the type of the callback in getprop.Elliott Hughes
Fixes: toys/android/getprop.c:56:39: warning: incompatible pointer types passing 'void (void *, const char *, const char *)' to parameter of type 'void (*)(void *, const char *, const char *, uint32_t)' (aka 'void (*)(void *, const char *, const char *, unsigned int)') [-Wincompatible-pointer-types] __system_property_read_callback(pi, read_callback, NULL); ^~~~~~~~~~~~~
2017-03-22Implement uptime -s.Elliott Hughes
Also add trivial tests.
2017-03-21dirtree_flagread() returns DIRTREE_ABORTVAL when the initial node doesn'tRob Landley
exist, which can hit ps when /proc isn't there or /proc/$PID/task isn't there (because process exited between the time we checked its contents and the time we looked for its threads).
2017-03-20Paste bugfix, more tests.Rob Landley
2017-03-20Add TOYBOX_PEDANTIC_ARGS to check arguments when there are no arguments,Rob Landley
and make uptime use it.
2017-03-20Rewrite paste so it actually works.Rob Landley
2017-02-20If the last ps field is left justified, it extends to the width of the screen.Rob Landley
(Recent "show + for last char when truncated" change broke that, putting it back.)
2017-02-20Declaring todo bankruptcy, dmesg goes back into pending until I get a chanceRob Landley
to unify the two codepaths in Elliott's rewrite.
2017-02-20Fix dmesg -c and -C.Elliott Hughes
I never use these, so I didn't notice I'd broken them until someone who does bringup complained. The "one weird trick" with SEEK_DATA is documented at the URL we already point to. SEEK_DATA was added in Linux 3.1 (2011) and isn't available in glibc 2.19 (2014), so I've added that to "portability.h" for the benefit of Ubuntu 14.04. Also make -c and -C mutually exclusive. Also fix some of the formatting I introduced earlier. (A clang-format file would help prevent these mistakes...)
2017-02-18Ascii only showed 15 rows instead of 16 and spacing was wrong for 96-100.Rob Landley
2017-02-16Teach file(1) about bzip2 files.Elliott Hughes
If we can read and write bzip2 files, we should be able to identify them too...
2017-02-09Document df -aRob Landley
2017-02-07Add ascii: display ascii table.Rob Landley
2017-02-06ps -l has 4 chars left for "cmd", switch "ADDR" to "BIT" to save space.Rob Landley
2017-02-06Make tty size failure to enable -w (Elliott prefers that), and fix last fieldRob Landley
to be left justified again.
2017-02-05Don't set SIGWINCH when reading ANSI size probe data, it causes a loop.Rob Landley
2017-02-05Bugfix: last field was padding to width with trailing spaces (oops), andRob Landley
when we can't query terminal size pad to 80 but add -w.
2017-02-05Patch from Elliott to silence a "const" warning in android/getprop.c.Rob Landley
(Broken out of a larger patch, fixed the other part a different way.)
2017-02-05Default to width 80 when tty size probe fails (ala serial console).Rob Landley
(It was defaulting to 99999 but not FLAG_w, so it tried to _pad_ to 99999.)
2017-02-04Switch oneit to use xopen_stdio() for -c (oops) and switch XVFORK() to useRob Landley
__attribute__((returns_twice)) instead of noinline. Yes LLVM supports it: https://llvm.org/bugs/show_bug.cgi?id=6287
2017-02-03Fix typo in pgrep help.Elliott Hughes
2017-02-03Fix operator precedence error in df.Elliott Hughes
2017-02-01Extend default USER length to 12 and output "+" as last character of truncatedRob Landley
(left-justified) fields.
2017-01-31ps bugfix: len of TTY field doesn't include null terminator, so memmove shouldRob Landley
subtract one _less_ than /dev prefix length or string isn't terminated.
2017-01-30Cleanup leftover debris.Rob Landley
2017-01-30Improve file's ELF parsing.Elliott Hughes
An ELF file with no program headers is valid, and binutils leaves e_phentsize zero in that case. Fix the corruption check to cope. Also, since notes are in both the program and section headers (and I'm not aware of the possibility of having no sections but still having notes --- where would they be?), look for them in the section headers instead. Also extend the parsing of the .android.note.ident ELF note to include the NDK version information if present. (This won't be present for platform binaries, but will be present for NDK-built binaries such as app libraries.)
2017-01-29Izabera suggested seq should multiply to avoid accumulating rounding errorsRob Landley
from incrementing by a double.
2017-01-28Tweak -w help text to clarify that it prevents truncating _any_ fields, notRob Landley
just for terminal width.
2017-01-28Add missing `static`s and remove an unused function.Elliott Hughes
2017-01-28Whitespace.Rob Landley
2017-01-28modprobe: Small cleanup pass, described on the list.Rob Landley
2017-01-28modprobe: use finit_module when possibleSteve Muckle
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.
2017-01-28modprobe: add -d option to specify module directory path(s)Steve Muckle
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.
2017-01-28top -H is more useful if it shows thread names.Elliott Hughes
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
2017-01-25Remove name length limit for system propertiesDimitry Ivanov
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
2017-01-25Promote microcom to net.Rob Landley
2017-01-25Switch escape charcter to ^] (ascii 29, doesn't conflict with emacs or joe).Rob Landley
Recognize full range of linux serial speeds (only error cfsetspeed returns is invalid speed value).
2017-01-17Fix microcom command-line help and -X.Elliott Hughes
2017-01-14Add "microcom" to pending.Elliott Hughes
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.
2017-01-14Quick and dirty fix for CVE-2016-6321 but seriously this is in pendingRob Landley
for a reason and I need to completely rewrite it.