Upgrade toybox to 2422a3060d51448f727e1532e2fd19d14f44c80e This project was upgraded with external_updater. Usage: tools/external_updater/updater.sh update external/<absolute path to project> For more info, check https://cs.android.com/android/platform/superproject/main/+/main:tools/external_updater/README.md Test: TreeHugger Change-Id: I1142f6fec678ee85f5911f8cd2b7c0d86f52d4f0
diff --git a/METADATA b/METADATA index 9b1463a..16426c9 100644 --- a/METADATA +++ b/METADATA
@@ -1,5 +1,5 @@ # This project was upgraded with external_updater. -# Usage: tools/external_updater/updater.sh update external/toybox +# Usage: tools/external_updater/updater.sh update external/<absolute path to project> # For more info, check https://cs.android.com/android/platform/superproject/main/+/main:tools/external_updater/README.md name: "toybox" @@ -9,12 +9,12 @@ last_upgrade_date { year: 2025 month: 3 - day: 10 + day: 26 } homepage: "https://landley.net/toybox/" identifier { type: "Git" value: "https://github.com/landley/toybox" - version: "2cc5e25fb107fe0ff77c95a983474497b76ac9f8" + version: "2422a3060d51448f727e1532e2fd19d14f44c80e" } }
diff --git a/android/device/generated/flags.h b/android/device/generated/flags.h index e3de2a3..9c286eb 100644 --- a/android/device/generated/flags.h +++ b/android/device/generated/flags.h
@@ -1829,14 +1829,15 @@ #undef FOR_local #endif -// log p:t: p:t: +// log b:p:t: b:p:t: #undef OPTSTR_log -#define OPTSTR_log "p:t:" +#define OPTSTR_log "b:p:t:" #ifdef CLEANUP_log #undef CLEANUP_log #undef FOR_log #undef FLAG_t #undef FLAG_p +#undef FLAG_b #endif // logger t:p:s t:p:s @@ -5659,6 +5660,7 @@ #endif #define FLAG_t (1LL<<0) #define FLAG_p (1LL<<1) +#define FLAG_b (1LL<<2) #endif #ifdef FOR_logger
diff --git a/android/device/generated/globals.h b/android/device/generated/globals.h index d234ed9..b67b9f1 100644 --- a/android/device/generated/globals.h +++ b/android/device/generated/globals.h
@@ -1,7 +1,7 @@ struct log_data { - char *t, *p; + char *t, *p, *b; - int pri; + int pri, buf; }; struct dmesg_data {
diff --git a/android/device/generated/help.h b/android/device/generated/help.h index 4a598db..9a5642c 100644 --- a/android/device/generated/help.h +++ b/android/device/generated/help.h
@@ -40,7 +40,7 @@ #define HELP_restorecon "usage: restorecon [-D] [-F] [-R] [-n] [-v] FILE...\n\nRestores the default security contexts for the given files.\n\n-D Apply to /data/data too\n-F Force reset\n-R Recurse into directories\n-n Don't make any changes; useful with -v to see what would change\n-v Verbose" -#define HELP_log "usage: log [-p PRI] [-t TAG] [MESSAGE...]\n\nLogs message (or stdin) to logcat.\n\n-p Use the given priority instead of INFO:\n d: DEBUG e: ERROR f: FATAL i: INFO v: VERBOSE w: WARN s: SILENT\n-t Use the given tag instead of \"log\"" +#define HELP_log "usage: log [-b BUFFER] [-p PRI] [-t TAG] [MESSAGE...]\n\nLogs message (or stdin) to logcat.\n\n-b Use the given log buffer instead of \"main\":\n \"radio\", \"events\", \"system\", \"crash\", \"stats\", \"security\", \"kernel\"\n-p Use the given priority instead of INFO:\n d: DEBUG e: ERROR f: FATAL i: INFO v: VERBOSE w: WARN s: SILENT\n-t Use the given tag instead of \"log\"" #define HELP_load_policy "usage: load_policy FILE\n\nLoad the specified SELinux policy file."
diff --git a/android/device/generated/newtoys.h b/android/device/generated/newtoys.h index 69c2258..103b55e 100644 --- a/android/device/generated/newtoys.h +++ b/android/device/generated/newtoys.h
@@ -169,7 +169,7 @@ USE_LN(NEWTOY(ln, "<1rt:Tvnfs", TOYFLAG_BIN)) USE_LOAD_POLICY(NEWTOY(load_policy, "<1>1", TOYFLAG_USR|TOYFLAG_SBIN)) USE_SH(NEWTOY(local, 0, TOYFLAG_NOFORK)) -USE_LOG(NEWTOY(log, "p:t:", TOYFLAG_USR|TOYFLAG_SBIN)) +USE_LOG(NEWTOY(log, "b:p:t:", TOYFLAG_USR|TOYFLAG_SBIN)) USE_LOGGER(NEWTOY(logger, "t:p:s", TOYFLAG_USR|TOYFLAG_BIN)) USE_LOGIN(NEWTOY(login, ">1f:ph:", TOYFLAG_BIN|TOYFLAG_NEEDROOT)) USE_LOGNAME(NEWTOY(logname, ">0", TOYFLAG_USR|TOYFLAG_BIN))
diff --git a/android/linux/generated/flags.h b/android/linux/generated/flags.h index 0fcbbc4..0da115e 100644 --- a/android/linux/generated/flags.h +++ b/android/linux/generated/flags.h
@@ -1829,14 +1829,15 @@ #undef FOR_local #endif -// log p:t: +// log b:p:t: #undef OPTSTR_log -#define OPTSTR_log "p:t:" +#define OPTSTR_log "b:p:t:" #ifdef CLEANUP_log #undef CLEANUP_log #undef FOR_log #undef FLAG_t #undef FLAG_p +#undef FLAG_b #endif // logger t:p:s @@ -5659,6 +5660,7 @@ #endif #define FLAG_t (FORCED_FLAG<<0) #define FLAG_p (FORCED_FLAG<<1) +#define FLAG_b (FORCED_FLAG<<2) #endif #ifdef FOR_logger
diff --git a/android/linux/generated/help.h b/android/linux/generated/help.h index 17e5456..dbd5d8c 100644 --- a/android/linux/generated/help.h +++ b/android/linux/generated/help.h
@@ -40,7 +40,7 @@ #define HELP_restorecon "usage: restorecon [-D] [-F] [-R] [-n] [-v] FILE...\n\nRestores the default security contexts for the given files.\n\n-D Apply to /data/data too\n-F Force reset\n-R Recurse into directories\n-n Don't make any changes; useful with -v to see what would change\n-v Verbose" -#define HELP_log "usage: log [-p PRI] [-t TAG] [MESSAGE...]\n\nLogs message (or stdin) to logcat.\n\n-p Use the given priority instead of INFO:\n d: DEBUG e: ERROR f: FATAL i: INFO v: VERBOSE w: WARN s: SILENT\n-t Use the given tag instead of \"log\"" +#define HELP_log "usage: log [-b BUFFER] [-p PRI] [-t TAG] [MESSAGE...]\n\nLogs message (or stdin) to logcat.\n\n-b Use the given log buffer instead of \"main\":\n \"radio\", \"events\", \"system\", \"crash\", \"stats\", \"security\", \"kernel\"\n-p Use the given priority instead of INFO:\n d: DEBUG e: ERROR f: FATAL i: INFO v: VERBOSE w: WARN s: SILENT\n-t Use the given tag instead of \"log\"" #define HELP_load_policy "usage: load_policy FILE\n\nLoad the specified SELinux policy file."
diff --git a/android/linux/generated/newtoys.h b/android/linux/generated/newtoys.h index 69c2258..103b55e 100644 --- a/android/linux/generated/newtoys.h +++ b/android/linux/generated/newtoys.h
@@ -169,7 +169,7 @@ USE_LN(NEWTOY(ln, "<1rt:Tvnfs", TOYFLAG_BIN)) USE_LOAD_POLICY(NEWTOY(load_policy, "<1>1", TOYFLAG_USR|TOYFLAG_SBIN)) USE_SH(NEWTOY(local, 0, TOYFLAG_NOFORK)) -USE_LOG(NEWTOY(log, "p:t:", TOYFLAG_USR|TOYFLAG_SBIN)) +USE_LOG(NEWTOY(log, "b:p:t:", TOYFLAG_USR|TOYFLAG_SBIN)) USE_LOGGER(NEWTOY(logger, "t:p:s", TOYFLAG_USR|TOYFLAG_BIN)) USE_LOGIN(NEWTOY(login, ">1f:ph:", TOYFLAG_BIN|TOYFLAG_NEEDROOT)) USE_LOGNAME(NEWTOY(logname, ">0", TOYFLAG_USR|TOYFLAG_BIN))
diff --git a/android/mac/generated/flags.h b/android/mac/generated/flags.h index dc3be59..94e4df2 100644 --- a/android/mac/generated/flags.h +++ b/android/mac/generated/flags.h
@@ -1829,14 +1829,15 @@ #undef FOR_local #endif -// log p:t: +// log b:p:t: #undef OPTSTR_log -#define OPTSTR_log "p:t:" +#define OPTSTR_log "b:p:t:" #ifdef CLEANUP_log #undef CLEANUP_log #undef FOR_log #undef FLAG_t #undef FLAG_p +#undef FLAG_b #endif // logger t:p:s @@ -5659,6 +5660,7 @@ #endif #define FLAG_t (FORCED_FLAG<<0) #define FLAG_p (FORCED_FLAG<<1) +#define FLAG_b (FORCED_FLAG<<2) #endif #ifdef FOR_logger
diff --git a/android/mac/generated/help.h b/android/mac/generated/help.h index 17e5456..dbd5d8c 100644 --- a/android/mac/generated/help.h +++ b/android/mac/generated/help.h
@@ -40,7 +40,7 @@ #define HELP_restorecon "usage: restorecon [-D] [-F] [-R] [-n] [-v] FILE...\n\nRestores the default security contexts for the given files.\n\n-D Apply to /data/data too\n-F Force reset\n-R Recurse into directories\n-n Don't make any changes; useful with -v to see what would change\n-v Verbose" -#define HELP_log "usage: log [-p PRI] [-t TAG] [MESSAGE...]\n\nLogs message (or stdin) to logcat.\n\n-p Use the given priority instead of INFO:\n d: DEBUG e: ERROR f: FATAL i: INFO v: VERBOSE w: WARN s: SILENT\n-t Use the given tag instead of \"log\"" +#define HELP_log "usage: log [-b BUFFER] [-p PRI] [-t TAG] [MESSAGE...]\n\nLogs message (or stdin) to logcat.\n\n-b Use the given log buffer instead of \"main\":\n \"radio\", \"events\", \"system\", \"crash\", \"stats\", \"security\", \"kernel\"\n-p Use the given priority instead of INFO:\n d: DEBUG e: ERROR f: FATAL i: INFO v: VERBOSE w: WARN s: SILENT\n-t Use the given tag instead of \"log\"" #define HELP_load_policy "usage: load_policy FILE\n\nLoad the specified SELinux policy file."
diff --git a/android/mac/generated/newtoys.h b/android/mac/generated/newtoys.h index 69c2258..103b55e 100644 --- a/android/mac/generated/newtoys.h +++ b/android/mac/generated/newtoys.h
@@ -169,7 +169,7 @@ USE_LN(NEWTOY(ln, "<1rt:Tvnfs", TOYFLAG_BIN)) USE_LOAD_POLICY(NEWTOY(load_policy, "<1>1", TOYFLAG_USR|TOYFLAG_SBIN)) USE_SH(NEWTOY(local, 0, TOYFLAG_NOFORK)) -USE_LOG(NEWTOY(log, "p:t:", TOYFLAG_USR|TOYFLAG_SBIN)) +USE_LOG(NEWTOY(log, "b:p:t:", TOYFLAG_USR|TOYFLAG_SBIN)) USE_LOGGER(NEWTOY(logger, "t:p:s", TOYFLAG_USR|TOYFLAG_BIN)) USE_LOGIN(NEWTOY(login, ">1f:ph:", TOYFLAG_BIN|TOYFLAG_NEEDROOT)) USE_LOGNAME(NEWTOY(logname, ">0", TOYFLAG_USR|TOYFLAG_BIN))
diff --git a/lib/portability.h b/lib/portability.h index 324ddc8..29d5469 100644 --- a/lib/portability.h +++ b/lib/portability.h
@@ -305,12 +305,13 @@ #endif #if !defined(__BIONIC__) || defined(__ANDROID_NDK__) // Android NDKv18 has liblog.so but not liblog.a for static builds. -static inline int stub_out_log_write(int pri, const char *tag, const char *msg) +static inline int stub_out_log_buf_write(int log_id, int pri, const char *tag, + const char *msg) { return -1; } #ifdef __ANDROID_NDK__ -#define __android_log_write(a, b, c) stub_out_log_write(a, b, c) +#define __android_log_buf_write(a, b, c, d) stub_out_log_buf_write(a, b, c, d) #endif #endif
diff --git a/toys/android/log.c b/toys/android/log.c index 005f714..1b05f4e 100644 --- a/toys/android/log.c +++ b/toys/android/log.c
@@ -2,17 +2,19 @@ * * Copyright 2016 The Android Open Source Project -USE_LOG(NEWTOY(log, "p:t:", TOYFLAG_USR|TOYFLAG_SBIN)) +USE_LOG(NEWTOY(log, "b:p:t:", TOYFLAG_USR|TOYFLAG_SBIN)) config LOG bool "log" depends on TOYBOX_ON_ANDROID default y help - usage: log [-p PRI] [-t TAG] [MESSAGE...] + usage: log [-b BUFFER] [-p PRI] [-t TAG] [MESSAGE...] Logs message (or stdin) to logcat. + -b Use the given log buffer instead of "main": + "radio", "events", "system", "crash", "stats", "security", "kernel" -p Use the given priority instead of INFO: d: DEBUG e: ERROR f: FATAL i: INFO v: VERBOSE w: WARN s: SILENT -t Use the given tag instead of "log" @@ -22,15 +24,15 @@ #include "toys.h" GLOBALS( - char *t, *p; + char *t, *p, *b; - int pri; + int pri, buf; ) static void log_line(char **pline, long len) { if (!pline) return; - __android_log_write(TT.pri, TT.t, *pline); + __android_log_buf_write(TT.buf, TT.pri, TT.t, *pline); } void log_main(void) @@ -47,6 +49,9 @@ ANDROID_LOG_VERBOSE, ANDROID_LOG_WARN}[i]; } if (!TT.t) TT.t = "log"; + if (TT.b) TT.buf = anystr(TT.b, (char *[]){"main", "radio", "events", + "system", "crash", "stats", "security", "kernel", 0})-1; + if (TT.buf<0) error_exit("unknown log buffer: %s", TT.b); if (toys.optc) { for (i = 0; toys.optargs[i]; i++) { @@ -61,5 +66,5 @@ } } else do_lines(0, '\n', log_line); - __android_log_write(TT.pri, TT.t, toybuf); + __android_log_buf_write(TT.buf, TT.pri, TT.t, toybuf); }