OSDN Git Service
Sandeep Patil [Wed, 7 Dec 2016 05:21:58 +0000 (21:21 -0800)]
Add modprobe
Bug: http://b/
33304485
Change-Id: Ic37aad18b4c05f3808de51ccab2676009afb4404
Signed-off-by: Sandeep Patil <sspatil@google.com>
Elliott Hughes [Thu, 26 Jan 2017 04:07:12 +0000 (20:07 -0800)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: Ic08d492bfa09d39ca1a968e1fa9fc873f1161630
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 [Sun, 15 Jan 2017 19:24:30 +0000 (11:24 -0800)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: Ifcffe984c4e2cdca85d800300d80cf6dfea5af0b
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 17:35:16 +0000 (09:35 -0800)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: I7e266954f5079fb2bb2cb623e3bc997465916598
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.)
Elliott Hughes [Tue, 13 Dec 2016 03:03:37 +0000 (19:03 -0800)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: Idcdb6b7ae9100bb6240fc7f6610d0233f728c916
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.)
Elliott Hughes [Tue, 29 Nov 2016 16:26:04 +0000 (16:26 +0000)]
Merge remote-tracking branch 'toybox/master' into HEAD
am:
d2ed825752
Change-Id: I8a6c0740b1be8d389004ab1f132ae255b021b7ad
Elliott Hughes [Tue, 29 Nov 2016 00:35:01 +0000 (16:35 -0800)]
Merge remote-tracking branch 'toybox/master' into HEAD
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.
Elliott Hughes [Fri, 18 Nov 2016 23:21:54 +0000 (23:21 +0000)]
Merge remote-tracking branch 'toybox/master' into HEAD
am:
ccb4be08fa
Change-Id: Ic1c7d46e93761700114946d2c9066c46221053e1
Elliott Hughes [Fri, 18 Nov 2016 21:30:53 +0000 (13:30 -0800)]
Merge remote-tracking branch 'toybox/master' into HEAD
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.
Elliott Hughes [Sat, 12 Nov 2016 02:18:37 +0000 (02:18 +0000)]
Merge remote-tracking branch 'toybox/master' into HEAD
am:
4be718d62e
Change-Id: Id8298b77e4d0c3402499dbfc079c7f228cab4034
Elliott Hughes [Fri, 11 Nov 2016 23:45:33 +0000 (15:45 -0800)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: I3a54258f757180bc8a40231ed6a72fc0149943c8
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 [Wed, 26 Oct 2016 17:00:35 +0000 (17:00 +0000)]
Merge remote-tracking branch 'toybox/master' into HEAD
am:
991623dec1
Change-Id: I49da41b2808102bc9c0e4fb8250457968e3332e1
Elliott Hughes [Wed, 26 Oct 2016 16:51:00 +0000 (09:51 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: I941b7746e631fd0c69888fa2b8b582dc85b2cb8f
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.
Elliott Hughes [Sat, 22 Oct 2016 18:02:19 +0000 (18:02 +0000)]
Merge remote-tracking branch 'toybox/master' into HEAD
am:
fb3ebf8f5d
Change-Id: Ic5e554bd996172c794299b2626dff10af65c7793
Elliott Hughes [Sat, 22 Oct 2016 16:12:59 +0000 (09:12 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: Ief5b3e5e09340c03048048511629f4af38ee16b9
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.)
Elliott Hughes [Thu, 20 Oct 2016 00:16:55 +0000 (00:16 +0000)]
Merge remote-tracking branch 'toybox/master' into HEAD
am:
5e9108a442
Change-Id: I836a48996548b7c2193f122e5ef1df13c76f36f7
Elliott Hughes [Thu, 20 Oct 2016 00:03:06 +0000 (17:03 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: I0f0d8078765f95a3092abda819130609b841ac2f
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.
Elliott Hughes [Mon, 10 Oct 2016 22:41:11 +0000 (22:41 +0000)]
Merge remote-tracking branch 'toybox/master' into HEAD am:
64891a65fc am:
8368cdd99f
am:
1954154d9d
Change-Id: Ia4a9aa17adf6d0199ed346c2f2722d7af022d690
Elliott Hughes [Mon, 10 Oct 2016 22:20:42 +0000 (22:20 +0000)]
Merge remote-tracking branch 'toybox/master' into HEAD am:
64891a65fc
am:
8368cdd99f
Change-Id: Ie8954cd6ea1141878c4d9b5bd6ea4652d5933493
Elliott Hughes [Mon, 10 Oct 2016 21:59:36 +0000 (21:59 +0000)]
Merge remote-tracking branch 'toybox/master' into HEAD
am:
64891a65fc
Change-Id: Iba8e51e0b6f1a02d2c80368c68d65dacf1029ea7
Elliott Hughes [Mon, 10 Oct 2016 18:41:47 +0000 (11:41 -0700)]
Merge remote-tracking branch 'toybox/master' into HEAD
Change-Id: I5c32bce3670267f13d5453bc627e2a46b1e570b1
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.
Elliott Hughes [Wed, 5 Oct 2016 04:07:52 +0000 (04:07 +0000)]
Add uudecode/uuencode. am:
eacb349519 am:
d6403b47ef
am:
f71ca9a93a
Change-Id: Ib7bcb1529e38bf9430fee1f1ff820f889a4d332d
Elliott Hughes [Wed, 5 Oct 2016 04:05:53 +0000 (04:05 +0000)]
Add uudecode/uuencode. am:
eacb349519
am:
d6403b47ef
Change-Id: I8fc6b5ba9e01ba404857b296ed62866cea2e3668
Elliott Hughes [Wed, 5 Oct 2016 04:03:22 +0000 (04:03 +0000)]
Add uudecode/uuencode.
am:
eacb349519
Change-Id: Idc00e94d7b2fab07f419c0d55d07756b6734b287
Rob Landley [Tue, 4 Oct 2016 20:08:48 +0000 (15:08 -0500)]
Explain dlist_terminate.
Elliott Hughes [Tue, 4 Oct 2016 16:27:25 +0000 (09:27 -0700)]
Add uudecode/uuencode.
Some firmware flashing scripts rely on sharutils, which rely on
uudecode/uuencode. Since we're several decades too late to expect
anyone to update sharutils to use base64 instead, and POSIX
includes uudecode/uuencode, let's just support them.
Bug: http://b/
31913440
Test: manual
Change-Id: Ia3893de08abfe5b8a8f58349bd298b912fa99e6a
Elliott Hughes [Tue, 4 Oct 2016 02:36:41 +0000 (02:36 +0000)]
Regenerate generated files. am:
591e5474ca am:
62a27179ab
am:
d0b9dce923
Change-Id: I4cd3c52128d55ea76ca79ab6cee25e475248eda6
Elliott Hughes [Tue, 4 Oct 2016 02:36:33 +0000 (02:36 +0000)]
Merge "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." am:
f241a4600d am:
8ed45ae4c9
am:
2c24c2f53b
Change-Id: I9bece9a7404cb255619fa667e7b0e8e25332dc9a
Elliott Hughes [Tue, 4 Oct 2016 02:36:23 +0000 (02:36 +0000)]
Merge "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)." am:
fad2309530 am:
b6689367ee
am:
1d9bd9c412
Change-Id: Id4755753dc19ed16f1555164b6fa44bce8992e43
Elliott Hughes [Tue, 4 Oct 2016 02:36:15 +0000 (02:36 +0000)]
Merge "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." am:
28e81a7a2b am:
3f8ebb6a22
am:
33aa11ad0a
Change-Id: I149e850762579cbc3b0213aa1a4e8753fe808ee9
Elliott Hughes [Tue, 4 Oct 2016 02:36:07 +0000 (02:36 +0000)]
Merge "sed -i run as root wasn't preserving ownership." am:
20197847d8 am:
073a48ef6f
am:
11f75a1dce
Change-Id: I59a6064e440aa517ce5422c8f84ba93e81606fd0
Elliott Hughes [Tue, 4 Oct 2016 02:34:23 +0000 (02:34 +0000)]
Regenerate generated files. am:
591e5474ca
am:
62a27179ab
Change-Id: Iff38e20b95eea9f18f2e0fbd4148c80fa13386cd
Elliott Hughes [Tue, 4 Oct 2016 02:34:14 +0000 (02:34 +0000)]
Merge "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." am:
f241a4600d
am:
8ed45ae4c9
Change-Id: If071480d85c7d2c70d9294c36833753b5a308a97
Elliott Hughes [Tue, 4 Oct 2016 02:34:05 +0000 (02:34 +0000)]
Merge "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)." am:
fad2309530
am:
b6689367ee
Change-Id: I549cb383c34efebc553926d5acae4fac7861c5eb
Elliott Hughes [Tue, 4 Oct 2016 02:33:57 +0000 (02:33 +0000)]
Merge "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." am:
28e81a7a2b
am:
3f8ebb6a22
Change-Id: I2a840daa016907f71fccff3feefb045a8bb1a61f