Commit Graph

18827 Commits

Author SHA1 Message Date
David Pursell 815c7beae7 fastboot: implement UDP networking interface.
This CL creates a UdpSocket class that provides a simple unified
interface to send and receive UDP packets for all platforms. Nothing
uses this interface yet except for tests.

The eventual goal is to implement a UDP protocol for fastboot, but it
makes the code much simpler and more modular if we handle the low-level
networking here independently of our custom fastboot protocol.

Some of the Windows code is similar to adb. I'd like to create a
library to hold the common functionality, but it is going to be a
little delicate to separate out the features unique to adb (e.g. the
custom file descriptor system), and I don't want to risk breaking
something in adb before the holiday break, so I'm hoping to get this in
for now and merge them early next year.

Tests are included in this CL to exercise this functionality using a
loopback connection.

Bug: http://b/26154763.
Tests: `fastboot_test` loopback tests on Linux, Mac, and Windows 7.
Change-Id: I81d1b7ace8d864246b99f6c80b8e29f64b8aa375
2015-12-16 16:16:08 -08:00
Josh Gao 56d7d4e85f Merge "adb: split up reads longer than 16k." 2015-12-16 20:47:32 +00:00
Alex Vakulenko 2fcf449886 Merge "Fix metricsd to conform to the lastest server schema" 2015-12-16 20:43:54 +00:00
Jeff Sharkey db72fe1772 Merge "Re-derive permissions after package changes." 2015-12-16 20:28:01 +00:00
Alex Vakulenko 33c5935852 Fix metricsd to conform to the lastest server schema
The new server push enabled component/trait validation rules. This
allows us to use the new schema that does not require vendor commands,
parameters and state to start with underscore ("_").

Also fixed a few minor errors in schema definition.

Change-Id: I184dd8e4c69c05e0dd1b0dddb1f9a7b0aef78841
2015-12-16 12:23:14 -08:00
Jeff Sharkey 22b912628e Re-derive permissions after package changes.
When packages change, existing package-specific directories may have
gained/lost a UID mapping, so we need to update the permissions for
any in-memory nodes.

This allows an app to deliver data for another package before that
package is installed, which is the typical pattern of how OBB files
are delivered.

Also fix bug by re-deriving permissions when files are moved.

Bug: 25399427
Change-Id: I06f38a24ad7dee5f5099ba81429aef03208e5683
2015-12-16 13:08:29 -07:00
Josh Gao 0b19540dee adb: split up reads longer than 16k.
Reads from functionfs allocate contiguous buffers in the kernel, causing
long ones to sometimes fail because of memory fragmentation.

Bug: http://b/26206622
Change-Id: Id40753d6f29b37b5ca97c3e2fa3921f52b4242de
2015-12-16 11:40:38 -08:00
Elliott Hughes f8d892c84a Merge "libpixelflinger: MIPS64 assembler test bug fix" 2015-12-16 18:23:49 +00:00
Elliott Hughes ec2f506e74 Merge "Make host ashmem_create_region more robust." 2015-12-16 18:22:57 +00:00
Elliott Hughes a48dc55f32 Merge "More idiomatic cleanup of 9f75a035713d216469f1cabfe4a65f7864e2145a." 2015-12-16 18:12:39 +00:00
Elliott Hughes 9e7893bf86 More idiomatic cleanup of 9f75a03571.
Change-Id: Id936946375d2be56ba10bf3aa5804f52cdbecc2d
2015-12-16 08:45:05 -08:00
Elliott Hughes 3918090252 Make host ashmem_create_region more robust.
Don't clobber errno if mkstemp failed, always unlink, and only count
mkstemp/ftruncate failures as real failures --- if only the unlink
fails, there's no point not using what we have.

Change-Id: I6bc788682c88651a50a6316b9ca07ba07e9fefa2
2015-12-16 08:33:52 -08:00
Nick Kralevich 57134adecb Merge "adbd: make a PR_CAPBSET_DROP error fatal." 2015-12-16 01:46:56 +00:00
Nick Kralevich 9f75a03571 adbd: make a PR_CAPBSET_DROP error fatal.
Back in 080427e4e2, we said:

  If the kernel doesn't support file capabilities, we ignore
  a prctl(PR_CAPBSET_DROP) failure. In a future CL, this could
  become a fatal error.

Make it a fatal error. With SELinux support, all devices are
required to support file capabilities.

Change-Id: I0ce0c4cb9387c42e325cbf1a63c5d82e6aab530c
2015-12-15 16:54:53 -08:00
Mark Salyzyn 7c20ab3e73 Merge "logd: simpleperf inspired optimizations" 2015-12-15 23:03:46 +00:00
Mark Salyzyn 1d9c7e728f logd: simpleperf inspired optimizations
memset is hot on log writes with too much overhead, not required.

Bug: 24444530
Bug: 23685592
Change-Id: Ibe3c83abca6774fc79a3be461f2f1585f4a9b1ff
2015-12-15 14:24:04 -08:00
Ljubomir Papuga e0c9f2bc5a libpixelflinger: MIPS64 assembler test bug fix
Change-Id: I47f77790baabea85ee318976a2c44ab1c0c0b9cb
2015-12-15 15:23:01 +01:00
Greg Hackmann 461a29540c Merge "cutils: trace: add DATABASE tag" 2015-12-14 21:12:52 +00:00
Elliott Hughes efd8c3289e Merge "Share the new adb USB diagnostic code with fastboot." 2015-12-14 20:29:46 +00:00
Elliott Hughes 1b708d368f Share the new adb USB diagnostic code with fastboot.
Bug: http://b/26134129
Change-Id: Ieaf0651c7b3f8a028760982091ec63a21a5484ba
2015-12-14 10:50:21 -08:00
Dimitry Ivanov 9fb5047549 Merge "Temporary disable linker-namespaces" 2015-12-12 06:16:23 +00:00
Elliott Hughes 796ea6a65d Merge "Remove fastboot/genkey.sh." 2015-12-12 02:25:13 +00:00
Dimitry Ivanov c18ac7cd2b Temporary disable linker-namespaces
Bug: http://b/26164393
Change-Id: If6277407a6a5a4da9e3ad01dc45f57a7fc9954e4
2015-12-11 18:15:41 -08:00
Elliott Hughes 44b6aefeeb Remove fastboot/genkey.sh.
Some unknown cruft from the pre-cupcake era.

Change-Id: I8964892419cda9781d1506aa7006c51dc00ca33d
2015-12-11 17:57:53 -08:00
Josh Gao 80f3b0438d Merge "adb: handle some edge cases with process environments." 2015-12-12 00:43:38 +00:00
Josh Gao e03c988748 adb: handle some edge cases with process environments.
Change-Id: I0c20e58e14ef756a8c45dd5ea85f7301157a3c8e
2015-12-11 15:58:32 -08:00
Josh Gao 5e15568c07 Merge "adb: don't use setenv after forking." 2015-12-11 23:32:19 +00:00
Josh Gao 9b3fd67213 adb: don't use setenv after forking.
Previously, for `adb shell`, we were using setenv after forking to set
up the child's environment. This would occasionally deadlock in the
child, which would cause the main thread to deadlock waiting for the
child to complete. This patch constructs the environment before forking
and passes it to execle, eliminating the deadlock.

Bug: http://b/25847115
Change-Id: I720d472770564b1449819ddaab945a89844244a8
2015-12-11 15:10:12 -08:00
Mark Salyzyn d2d35df279 Merge "liblog: logprint security ANDROID_LOG_WARN" 2015-12-11 21:43:17 +00:00
Tom Cherry b11afd7741 Merge "Update init documentation to reflect fs_config changes" 2015-12-11 21:23:12 +00:00
Tom Cherry dbddb40c95 Update init documentation to reflect fs_config changes
Change-Id: I00296d90c44af369a51ecb5cbb667567328f0053
2015-12-11 13:20:38 -08:00
Josh Gao c8e793685c Merge "adb: make pulling symlinks and devices work." 2015-12-11 21:04:25 +00:00
Josh Gao f264224191 adb: make pulling symlinks and devices work.
Bug: http://b/25972989
Bug: http://b/26085751
Change-Id: I43842871522ea5f67a8c258dcb6ddafa8dd744c8
2015-12-11 12:51:38 -08:00
Mark Salyzyn 7bc8023857 liblog: logprint security ANDROID_LOG_WARN
Bug: 26029733
Change-Id: I4f0cffc0a45819fb48807bf06ce336316276369d
2015-12-11 12:37:22 -08:00
Mark Salyzyn 86052a5d4f Merge "logd: liblog: logcat: Add LOG_ID_SECURITY" 2015-12-11 17:33:33 +00:00
Mike Frysinger 6945e36060 Merge "adbd: refactor priv dropping logic" 2015-12-11 17:03:19 +00:00
Mark Salyzyn 30edbdce9b Merge changes I598c8c5c,I672b0f4d,Id882978b,Idff5e080,Ib124eca1, ...
* changes:
  logger.h: reduce maximum payload so sum is page size
  liblog: test for maximum payload can not survive change
  liblog: logprint use uid name if length less then 5
  liblog: logprint add uid format modifier
  liblog: readlog apps get logger_entry_v4 for pstore
  logd: readlog apps get logger_entry_v4
  logger.h: Add definition for logger_entry_v4
2015-12-11 16:42:28 +00:00
Mark Salyzyn ad9dac1c27 Merge "logd: best 2/3 filter for timezone glitches" 2015-12-10 23:38:03 +00:00
Todd Poynor f2b8cb9023 Merge "crash_reporter: use libmetricscollectorservice for user crash event reports" 2015-12-10 22:25:33 +00:00
Todd Poynor 5fc82ef714 Merge "metrics_collector: add libmetricscollectorservice binder service" 2015-12-10 22:25:19 +00:00
Todd Poynor 8361935de8 crash_reporter: use libmetricscollectorservice for user crash event reports
Drop dependencies on D-Bus.

Bug: 25929888
Change-Id: Ie21c2feee098887ebb2dac14c866e28689e9343e
2015-12-10 13:34:10 -08:00
Todd Poynor 694553d097 metrics_collector: add libmetricscollectorservice binder service
Switch user crash event notification from D-Bus to this Binder service.

Add a trampoline as a go-between for the -frtti and -fno-rtti sources.

Add MetricsCollectorServiceClient for crash_reporter to use, hiding the
binder proxy details.

Remove D-Bus message filtering from metrics_collector.

Bug: 25929888
Change-Id: Idcdd60ac476340fb11602fc9afab6cd87843e529
2015-12-10 13:34:10 -08:00
Josh Gao aae38d9704 Merge "adb: shell: add -n flag to not read from stdin." 2015-12-10 21:30:19 +00:00
Mark Salyzyn c172d9e204 Merge "logd: logd-reinit exits with 194" 2015-12-10 21:24:45 +00:00
Mark Salyzyn b06247d9a0 logd: best 2/3 filter for timezone glitches
klogd is sensitive to changes in timezone resulting in glitches
surrounding conversion to local realtime logging. logger manages
a map from monotonic to realtime, but the process is racey since
the system can change the timezone at any time, this catches those
cases where it glitches.

Bug: 21868540
Change-Id: I03de6675fcd04f18ba7306a24dc3d9e750d86976
2015-12-10 13:20:48 -08:00
Josh Gao 7d58607360 adb: shell: add -n flag to not read from stdin.
Shell scripts of the following form do not work properly with adb:
    echo "foo\nbar\nbaz" | {
        read FOO
        while [ "$FOO" != "" ]; do
            adb shell echo $FOO
            read FOO
        done
    }
The first run of adb shell will consume all of the contents of stdin,
causing the loop to immediately end. ssh solves this by providing a -n
flag that causes it to not read from stdin. This commit adds the same.

Bug: http://b/25817224
Change-Id: Id74ca62ef520bcf03678b50f4bf203916fd81038
2015-12-10 12:52:06 -08:00
Nick Kralevich ce4bbcfb08 Merge "Revert "adb: Make HOME=/data/local/tmp"" 2015-12-10 20:48:08 +00:00
Nick Kralevich b118762241 Revert "adb: Make HOME=/data/local/tmp"
During early boot, we may be mounting and unmounting /data.
Having the home directory for adb shell commands, such as
"adb shell logcat", on the /data directory prevents unmounting.

This reverts commit 173eb396c7.

Bug: 26132185
Change-Id: Ib7c2f9e696f52bf5bbb79223d90dd76791779587
2015-12-10 20:42:18 +00:00
Mark Salyzyn f011a335f2 logd: logd-reinit exits with 194
Bug: 26115803
Change-Id: I6e8843ce9766756a40e6d176e0a822f62045c2af
2015-12-10 12:26:08 -08:00
Sami Tolvanen 907ec7daa7 Merge "fs_mgr: support upstream dm-verity without error correction" 2015-12-10 20:13:02 +00:00