Commit graph

42298 commits

Author SHA1 Message Date
David Anderson
de1daa72aa liblp: Simplify GrowPartition().
The partition resize algorithm duplicates a lot of logic because it
handles the final free interval separately from other free intervals.
This is unnecessary and makes it harder to change the actual algorithm.

This change makes GrowPartition() treat the final free space region the
same as free gaps in between partitions. It does this by converting the
extent list into a gap list, and then adds a final gap for the remainder
of the free space. The resize function no longer has to treat the end of
the disk separately.

This patch does not change the way partitions are allocated, it is
purely a refactoring.

Bug: 79173901
Test: liblp_test gtest
Change-Id: I4780f20b23fe021eac62de874b061857712c04fe
2018-08-02 09:14:47 -07:00
David Anderson
432a51dcdc Merge "liblp: Add a ResizePartition helper to MetadataBuilder."
am: ddcee93c01

Change-Id: I187c1aba212a754d282f3ec7a65f3fda549f6e28
2018-08-02 09:13:02 -07:00
Treehugger Robot
ddcee93c01 Merge "liblp: Add a ResizePartition helper to MetadataBuilder." 2018-08-02 16:01:24 +00:00
Suren Baghdasaryan
8d56d5f965 Merge "liblog: Add functions to reset log context"
am: 2d5c1b56d2

Change-Id: I5b152fe9b6647f0e36b9c4e604bfa053778c69d2
2018-08-01 19:55:13 -07:00
Treehugger Robot
2d5c1b56d2 Merge "liblog: Add functions to reset log context" 2018-08-02 02:45:55 +00:00
Suren Baghdasaryan
bb20b9e6b8 liblog: Add functions to reset log context
Add android_log_parser_reset and android_log_reset to reset reader/writer
log context. This allows to generate multiple log messages of the same
format without context reallocation.

Change-Id: Icb0f15855378aa4e66fc671ffefd15d9df6fee1e
2018-08-02 00:55:01 +00:00
David Anderson
2e755e38af liblp: Add a ResizePartition helper to MetadataBuilder.
This change is to assist with implementing the fastbootd "resize-partition"
command. The GrowPartition and ShrinkPartition functions are now
private.

Bug: 78793464
Test: N/A
Change-Id: Ic66a3052359e2558663272ff6e014704206b197e
2018-08-01 17:41:29 -07:00
Luis Hector Chavez
d4ee791365 Merge "fs_mgr: Always mount tmpfs with MS_NOEXEC"
am: 8f2a34a89b

Change-Id: I80ac903329f24756ef8a3d9bade11f446b2e1c31
2018-08-01 16:16:27 -07:00
Treehugger Robot
8f2a34a89b Merge "fs_mgr: Always mount tmpfs with MS_NOEXEC" 2018-08-01 22:41:56 +00:00
Tom Cherry
780d80b5a6 Merge "init: run fsck for early mount partitions"
am: 6e05552e35

Change-Id: I6b44584616557ef3c58039eff6ce7eaf3c2d7623
2018-08-01 14:11:19 -07:00
Tom Cherry
6e05552e35 Merge "init: run fsck for early mount partitions" 2018-08-01 21:02:35 +00:00
Hridya Valsaraju
cb10dca496 Merge "Flash super partition with fastboot flashall"
am: 10601fd512

Change-Id: Ibd1b1ba6ccd16ff82c7c050fb6bdf0121e851268
2018-08-01 13:57:11 -07:00
Elliott Hughes
51c5ef24d6 Merge "Move back to BSD grep, and make it available for recovery too."
am: af7e4567a3

Change-Id: I2dc4b70c11a74c436cfa9a4651fc3251ccc6790c
2018-08-01 13:49:23 -07:00
Treehugger Robot
10601fd512 Merge "Flash super partition with fastboot flashall" 2018-08-01 20:47:53 +00:00
Tom Cherry
457e28f129 ueventd: require opt-in for modalias handling
Some devices have modules.alias and modules.dep for modprobe and other
purposes but do not want to opt into ueventd auto loading their
modules.  Therefore we add a flag that can be added to ueventd
configuration files to opt into this behavior.

Bug: 111916071
Bug: 112048758
Test: check that modules are loaded with this opt-in
Test: check that modules are not loaded without this opt-in
Change-Id: Ifb281b273059b4671eea1ca5bc726c9e79f3adfb
2018-08-01 13:29:05 -07:00
Elliott Hughes
af7e4567a3 Merge "Move back to BSD grep, and make it available for recovery too." 2018-08-01 20:28:27 +00:00
Hridya Valsaraju
94943ee331 Flash super partition with fastboot flashall
Bug: 111763923
Test: fastboot flashall
Change-Id: I9b89825bac00d1237972a61715da05f933ac35ce
2018-08-01 18:30:36 +00:00
Elliott Hughes
8100d05778 Move back to BSD grep, and make it available for recovery too.
Bug: http://b/111849261
Bug: https://bugs.exim.org/show_bug.cgi?id=2294
Test: manual
Change-Id: Ia4f67b9f803c4f039d170f6d015a1bd2bb0ef23d
2018-08-01 10:35:46 -07:00
Tomasz Wasilczyk
c9c3128ac5 Merge "Remove unused logging symbols."
am: 081b710b2e

Change-Id: I580bffd9688446839d30bcbd225de59885daf7f2
2018-08-01 09:44:49 -07:00
Tomasz Wasilczyk
081b710b2e Merge "Remove unused logging symbols." 2018-08-01 16:37:38 +00:00
Spencer Low
d9de068a8a Merge "adb: win32: fix Unicode console output"
am: 52126a414b

Change-Id: I7b4cdacb43d8a1ef03572caa315c72afcb4b4122
2018-07-31 22:35:44 -07:00
Treehugger Robot
52126a414b Merge "adb: win32: fix Unicode console output" 2018-08-01 05:25:09 +00:00
Josh Gao
eded388d64 Merge changes Ib55d304d,I6fa078ea,I18e9213d,Ife58f0aa,Iccc55557
am: 24f9fc7fee

Change-Id: Ie8289b0df453c3326a12ae8959724ece738024f3
2018-07-31 21:23:58 -07:00
Treehugger Robot
24f9fc7fee Merge changes Ib55d304d,I6fa078ea,I18e9213d,Ife58f0aa,Iccc55557
* changes:
  adb: disable ReconnectHandler in adbd.
  adb: fix error message for `adb {forward,reverse}`
  adb: more immediately try to reconnect connections.
  adb: don't pass time_point::max to condition_variable::wait_until.
  adb: move list-forward, kill-forward back into handle_forward_request.
2018-08-01 04:19:16 +00:00
Dario Freni
586282a771 Merge "Add product-services.img for fastboot flashall."
am: 8b8d7d67f2

Change-Id: I698a75c06e6041ddf403aba2ae5e894308bce2c3
2018-07-31 19:15:00 -07:00
Treehugger Robot
8b8d7d67f2 Merge "Add product-services.img for fastboot flashall." 2018-08-01 02:00:40 +00:00
Josh Gao
def91c0abf adb: disable ReconnectHandler in adbd.
Previously, when a TCP connection was disconnected from adbd, we were
registering it with ReconnectHandler, which led to the transport
sticking around after the socket was closed. Due to the naming of
TCP transports in adbd (host-<fd number>), this results in incoming
connections being immediately closed if their file descriptor number
ends up being the same as a TCP transport that had previously
disconnected.

Guard all of the reconnect logic with ADB_HOST, to fix this.

Bug: http://b/112054041
Test: while true; do adb connect <device>; adb connect <device>; adb shell true; done
Change-Id: Ib55d304d7e07d6d744e8321d34671bb6d4b91afe
2018-07-31 18:28:32 -07:00
Tomasz Wasilczyk
3b70eedfa0 Remove unused logging symbols.
Bug: 35361699
Test: flash sailfish, it boots
Change-Id: Ie545145789faa299e1228b6c91566e0767f7ea79
2018-07-31 16:33:38 -07:00
Dario Freni
c7ea1afe90 Add product-services.img for fastboot flashall.
This CL is largely and adaptation of
Ifd119650dd3316508870df0dfc770099e95ae1d1

Bug: 80741439
Test: Successfully built product-services.img with one module in it, and
flashed on device. Also successfully built image with
/system/product-services and no dedicated /product-services partition.

Change-Id: I204a831e052d018018ab124d70ad1ff1610ee007
2018-08-01 00:08:52 +01:00
Josh Gao
258d4a91c9 adb: fix error message for adb {forward,reverse}
Test: `adb reverse`
Change-Id: I6fa078ea7a0e019df5c6309df99ffdf2a3219194
2018-07-31 15:57:52 -07:00
Josh Gao
e445a6d8a2 adb: more immediately try to reconnect connections.
Most disconnects we're likely to encounter are cases where either we
notice immediately and can start reconnecting almost immediately (adbd
restarting because of `adb root`, etc.), or where we won't notice for a
while anyway, so a 10 second sleep is somewhat meaningless.

Test: adb root; time adb wait-for-device shell
Change-Id: I18e9213dc4e84d735e9240118a368dcb38f21c78
2018-07-31 15:57:49 -07:00
Josh Gao
95af641bd6 adb: don't pass time_point::max to condition_variable::wait_until.
libstdc++ implements wait_until by calculating the offset between its
default clock and the clock that it's given by calling now() on each
and subtracting, and then adds that offset to the time_point argument.
When time_point::max is used, this overflows, resulting in the
reconnection thread spinning.

Test: wine adb.exe server nodaemon
Change-Id: Ife58f0aad14bc44c0804483d3ff2351c28b3d576
2018-07-31 15:56:31 -07:00
Josh Gao
1906243017 adb: move list-forward, kill-forward back into handle_forward_request.
The daemon-side reverse functions depended on handle_forward_request:
move them back instead of duplicating the logic we had in
handle_host_request. Accomplish what we originally wanted to do in this
change by changing the transport argument of handle_forward_request to a
std::function that acquires a transport, either via
acquire_one_transport or immediately returning a value that we already
have.

As a side effect, fix a bug where we would emit spurious errors for host
service requests.

Bug: http://b/112009742
Test: echo "001chost:connect:127.0.0.1:5555" | nc localhost 5037
Test: python test_device.py
Test: python test_adb.py
Change-Id: Iccc555575df6dbd7de10382854c4ea2c6f4beeaa
2018-07-31 15:36:55 -07:00
Tom Cherry
81ae07509d init: run fsck for early mount partitions
Bug: 111883560
Test: fsck runs successfully during early mount
Change-Id: I19bcd2610f87f5331f94c228fcbec8f9379fc5e8
2018-07-31 13:58:17 -07:00
David Anderson
10c43cff04 Merge "adb: Correctly detect deduplicated ext4 partitions."
am: 4c87c1743e

Change-Id: Ibc45a8dfc2a2d2eb1f56fbe458f1495fa4b94982
2018-07-31 09:30:24 -07:00
Treehugger Robot
4c87c1743e Merge "adb: Correctly detect deduplicated ext4 partitions." 2018-07-31 16:20:02 +00:00
Spencer Low
771ba0c057 adb: win32: fix Unicode console output
commandline.cpp includes commandline.h which defines
StandardStreamsCallbackInterface which calls fwrite(). In the
compilation unit for commandline.cpp, fwrite is getting remapped to
adb_fwrite (good), but the compilation unit for bugreport.cpp includes
sysdeps.h pretty late, which prevents fwrite from getting remapped to
adb_fwrite.

Apparently when linking, the version of StandardStreamsCallbackInterface
that gets used is the one from bugreport.cpp's compilation unit, which
doesn't call adb_fwrite().

And it's necessary to call adb_fwrite() to get Unicode console output on
Windows.

The fix is to #include "sysdeps.h" earlier in bugreport.cpp. I searched
the other object files for other unremapped calls to printf/fwrite/etc.
and didn't find any.

Bug: https://issuetracker.google.com/issues/111972753
Test: mma, manual test on Windows 10 x64

Change-Id: I322dff75a878397f5e10227e746e77b0024129d0
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2018-07-30 19:53:23 -07:00
David Anderson
64465fde9f Merge "fastboot: Fix hang when sparse images end in small chunks."
am: d0d7d0a6b9

Change-Id: Ia98cc2ed8f09ad99aa8d00ba7edb16553827556c
2018-07-30 16:50:32 -07:00
Luis Hector Chavez
c4a8b5a595 Merge "Make /acct have 0555 permissions after mounting"
am: f2878cf15b

Change-Id: I961153c5af23a7f094aea16c8958b0d2bb36391b
2018-07-30 16:49:55 -07:00
Treehugger Robot
d0d7d0a6b9 Merge "fastboot: Fix hang when sparse images end in small chunks." 2018-07-30 23:40:36 +00:00
Treehugger Robot
f2878cf15b Merge "Make /acct have 0555 permissions after mounting" 2018-07-30 23:37:59 +00:00
David Anderson
6dc508671b adb: Correctly detect deduplicated ext4 partitions.
The fs_has_shared_blocks function had two problems. One, it called
statfs() on the mount point, which will return information about the
file system the mount point is on, rather than the filesystem mounted at
that location. Second, the check for EXT4_SUPER_MAGIC was inverted.

Bug: N/A
Test: adb remount -R works on an ext4 deduplicated device
Change-Id: I2e5ef895ea274cb7cc3c35295120da90a026d0d2
2018-07-30 16:08:29 -07:00
David Anderson
0c7bde8de6 fastboot: Fix hang when sparse images end in small chunks.
When host fastboot sends sparse blocks to the device, it tries to only
send blocks in multiples of 1024 bytes. If a block is not aligned to this
size, the excess bytes are prepended to the next write operation. This
is implemented by doing the write in two steps: first the previous
excess from the last write (plus new data up to alignment), then a
second write for the aligned remainder of the new data.

This logic has a bug if the final block plus the previous excess data
contains >= 1024 but < 2048 bytes. In this case the first write will
drain 1024 bytes from the data, and the second write will not have 1024
bytes to write. Instead of retaining this data for the next write, it
tries to write 0 chunks (and thus 0 bytes), which hangs the ioctl() call.

Bug: N/A
Test: "fastboot flash super super.img" where super.img is generated by
      lpmake, containing system and product_services partitions and
      images.

Change-Id: I9e8523c976ec84d5a57b36a28f4b1ca800edb7e7
2018-07-30 14:48:13 -07:00
Luis Hector Chavez
0451fd6584 Make /acct have 0555 permissions after mounting
This change adds a `chmod 0555 /acct` just after mounting the cgroup fs
on it. This makes it such that even on systems where the rootdir+system
partitions are shared, the permissions allow for the system user to open
files within /acct, which in turn makes libprocessgroup not complain
that it can never do anything with those files.

Bug: 111996377
Test: adb shell 'ls -ldZ /acct'  # Before and after, on an aosp_sailfish
      dr-xr-xr-x 48 root root u:object_r:cgroup:s0 0 1971-12-29 17:41 /acct

Change-Id: Iee6531126c6e81aa7794e44500555bd3c1cdf7b8
2018-07-30 13:06:46 -07:00
Tao Bao
d6b7711e3d Merge "charger: minui error handling fixups"
am: bc31fc62ce

Change-Id: I48633f51f5259d783e7f72f98576ffbd8c26abbf
2018-07-30 10:39:55 -07:00
Tao Bao
bc31fc62ce Merge "charger: minui error handling fixups" 2018-07-30 17:32:32 +00:00
Yifan Hong
7f9ba18e25 Merge "BOARD_USES_PRODUCT_SERVICES_IMAGE => BOARD_USES_PRODUCT_SERVICESIMAGE"
am: d5f825c78b

Change-Id: Ica5d41ee4832b3da6420b730d20b91057d2452e4
2018-07-30 09:26:44 -07:00
Treehugger Robot
d5f825c78b Merge "BOARD_USES_PRODUCT_SERVICES_IMAGE => BOARD_USES_PRODUCT_SERVICESIMAGE" 2018-07-30 16:20:08 +00:00
Todd Poynor
e5d1b62300 charger: minui error handling fixups
Log an error if minui init fails, and avoid subsequent calls to minui
in this case (which are likely to crash).

Warn if no system text font available.  This is now expected on most
devices, and the fallback text is not expected to be needed, but just
in case.

Avoid the attempt to print text if no system font available, log
warnings instead.

Bug: 80249440
Test: manual: charger mode with no system font
Change-Id: Ib0c761d37e41a893b2a192438eebcf48c4827049
Merged-In: Ib0c761d37e41a893b2a192438eebcf48c4827049
(cherry picked from commit 8211515fbe)
2018-07-30 08:45:52 -07:00
Thierry Strudel
ce6c983e5d Merge "healthd_mode_charger: unblank the screen only on first frame"
am: a8dcef2012

Change-Id: Id977a285d0f3b703a476b5a82b5f3c955112bde7
2018-07-30 03:56:41 -07:00