OSDN Git Service

android-x86/system-vold.git
5 years agoCheckpoints: Support validation and roll forward on fail
Paul Lawrence [Tue, 20 Nov 2018 22:07:59 +0000 (14:07 -0800)]
Checkpoints: Support validation and roll forward on fail

Test: Rolls backward, and if you hexedit a BOW page, rolls forward
Change-Id: If99a6c3a3bc3f615bd1445f5af14ea490a58e053

5 years agoMerge "Fsync directories after creating files"
Treehugger Robot [Mon, 7 Jan 2019 20:09:34 +0000 (20:09 +0000)]
Merge "Fsync directories after creating files"

5 years agoFsync directories after creating files
Paul Crowley [Fri, 7 Dec 2018 23:36:09 +0000 (15:36 -0800)]
Fsync directories after creating files

Bug: 120248692
Test: adb shell locksettings set-pin 1111 && \
    adb shell "echo b > /proc/sysrq-trigger"
Change-Id: I53d252942c21365983b4f8b6e0948b1864f195c1

5 years agoMerge "cryptfs: Add error messages when remove dm-crypt device is failed"
Treehugger Robot [Mon, 7 Jan 2019 09:45:22 +0000 (09:45 +0000)]
Merge "cryptfs: Add error messages when remove dm-crypt device is failed"

5 years agocryptfs: Add error messages when remove dm-crypt device is failed
Yue Hu [Mon, 17 Dec 2018 09:09:55 +0000 (17:09 +0800)]
cryptfs: Add error messages when remove dm-crypt device is failed

We do not know what happened if remove dm-crypt device is failed, so
the error status added is useful to debug failed ioctl.

Change-Id: I49be91b9087ef2a213a706dd6b2a07eb6dafe6e6
Signed-off-by: Yue Hu <zbestahu@gmail.com>
5 years agoMerge changes I1c50546e,I8254cb6b,Ib179299a,Iec1c2801
Greg Kaiser [Fri, 21 Dec 2018 00:10:42 +0000 (00:10 +0000)]
Merge changes I1c50546e,I8254cb6b,Ib179299a,Iec1c2801

* changes:
  EncryptInplace: Rename variable
  Checkpoint: Assure proper buffer alignment
  vold: Pass std::string by const reference
  vold: const-ify some of the API

5 years agoEncryptInplace: Rename variable
Greg Kaiser [Tue, 18 Dec 2018 20:34:07 +0000 (12:34 -0800)]
EncryptInplace: Rename variable

We rename our 'buf' in the inner scope to avoid confusion with
the 'buf' in the outer scope which is used immediately after
exiting the inner scope.

Test: TreeHugger
Change-Id: I1c50546e86c680e963eedcbda26138f8b43e55e9

5 years agoCheckpoint: Assure proper buffer alignment
Greg Kaiser [Tue, 18 Dec 2018 20:22:29 +0000 (12:22 -0800)]
Checkpoint: Assure proper buffer alignment

We have a char buffer on the stack, which we then cast to a
struct, and then proceed to access elements in the struct.
This is not safe across all platforms, as some platforms
may require a certain alignment for members of the struct.
We fix this by assuring an appropriate alignment for our
char buffer.

We also use C++ casting, and rename our buffer to differenciate
it from the other 'buffer' variable in this function.

Test: TreeHugger
Change-Id: I8254cb6b8124e394bd805afd1ccca0faedb27ffa

5 years agovold: Pass std::string by const reference
Greg Kaiser [Tue, 18 Dec 2018 19:10:31 +0000 (11:10 -0800)]
vold: Pass std::string by const reference

In a couple places, we change to pass a std::string argument
instead of by copy.

Test: TreeHugger
Change-Id: Ib179299a2322fcbab4e6d192051218823ad66a36

5 years agovold: const-ify some of the API
Greg Kaiser [Tue, 18 Dec 2018 16:42:08 +0000 (08:42 -0800)]
vold: const-ify some of the API

We make some of the C++ member functions 'const', to reflect how
they (don't) affect the state of the class.

Test: TreeHugger
Change-Id: Iec1c2801bfe721e2741406ed1ac0ef95662840a6
Merged-In: Iec1c2801bfe721e2741406ed1ac0ef95662840a6

5 years agoMerge changes from topic "checkpoint-enable"
Treehugger Robot [Sat, 15 Dec 2018 04:39:51 +0000 (04:39 +0000)]
Merge changes from topic "checkpoint-enable"

* changes:
  Add Support for metadata key with rollback
  Add property for checkpointing

5 years agoAdd Support for metadata key with rollback
Daniel Rosenberg [Fri, 14 Dec 2018 09:08:10 +0000 (01:08 -0800)]
Add Support for metadata key with rollback

This adds the ability to upgrade a key and retain the
old one for rollback purposes. We delete the old key
if we boot successfully and delete the new key if we
do not.

Test: Enable checkpointing and test rolling back
      between two versions
Bug: 111020314

Change-Id: I19f31a1ac06a811c0644fc956e61b5ca84e7241a

5 years agoAdd property for checkpointing
Daniel Rosenberg [Fri, 14 Dec 2018 08:20:03 +0000 (00:20 -0800)]
Add property for checkpointing

We set a property when we commit a chackpoint to signal
to anyone who wants to do post commit cleanup.

Test: Boot to homescreen and check getprop for vold.checkpoint_committed
Bug: 111020314
Change-Id: Idf35e3abf9d24eb40c6926a30a8403064c05e10a

5 years agoMerge changes from topic "userspace_adiantum_support"
Greg Kaiser [Wed, 12 Dec 2018 04:59:25 +0000 (04:59 +0000)]
Merge changes from topic "userspace_adiantum_support"

* changes:
  cryptfs: Allow setting dm-crypt sector size
  cryptfs: Add Adiantum support

5 years agocryptfs: Allow setting dm-crypt sector size
Greg Kaiser [Tue, 11 Dec 2018 20:40:51 +0000 (12:40 -0800)]
cryptfs: Allow setting dm-crypt sector size

We add the property ro.crypto.fde_sector_size to allow devices
to pass the "sector_size:<size>" argument to dm-crypt in the kernel.
We also pass "iv_large_sectors" when setting the sector size.

Using 4096-byte sectors rather than the default of 512 improves
dm-crypt performance, especially when the Adiantum encryption mode
is used.

Bug: 112010205
Test: Run on a device
Change-Id: I144ec7088a0aad3430369dc7158370d7ff3ef5d2

5 years agocryptfs: Add Adiantum support
Greg Kaiser [Mon, 3 Dec 2018 19:23:19 +0000 (11:23 -0800)]
cryptfs: Add Adiantum support

Adiantum is a crypto method Android is supporting for devices
which don't have AES CPU instructions.  See the paper
"Adiantum: length-preserving encryption for entry-level processors"
(https://eprint.iacr.org/2018/720.pdf) for more details.

We add Adiantum to our list of supported crypto types.

Bug: 112010205
Test: Tested on a device
Change-Id: Ic190a9b90fc8bc077fdc7d60c9d5ae8d8f555025

5 years agoMerge "DO NOT MERGE"
Treehugger Robot [Mon, 10 Dec 2018 17:20:41 +0000 (17:20 +0000)]
Merge "DO NOT MERGE"

5 years agoMerge "Check for errors in dup2"
Treehugger Robot [Sat, 8 Dec 2018 02:03:37 +0000 (02:03 +0000)]
Merge "Check for errors in dup2"

5 years agoDO NOT MERGE
Xin Li [Sat, 8 Dec 2018 00:14:54 +0000 (16:14 -0800)]
DO NOT MERGE

Merge pie-platform-release (PPRL.181205.001, history only) into master

Bug: 120502534
Change-Id: I087ef5ac78dc1c42448b7c8d50864a412afd3154

5 years agoCheck for errors in dup2
Paul Crowley [Fri, 7 Dec 2018 20:23:25 +0000 (12:23 -0800)]
Check for errors in dup2

Bug: 26735063
Test: adb shell sm partition disk:7,3 private && adb logcat -d
Change-Id: I3aa8d1f6183dd5e77f54f422482a54ea8197d768

5 years agoMerge "Fix signedness mismatch and integer underflow"
Treehugger Robot [Fri, 7 Dec 2018 11:05:17 +0000 (11:05 +0000)]
Merge "Fix signedness mismatch and integer underflow"

5 years agoMerge "Do lazy-unmount to /storage directly"
Paul Crowley [Fri, 7 Dec 2018 06:35:48 +0000 (06:35 +0000)]
Merge "Do lazy-unmount to /storage directly"

5 years agoMerge "Clean up use of pipe"
Treehugger Robot [Fri, 7 Dec 2018 00:10:45 +0000 (00:10 +0000)]
Merge "Clean up use of pipe"

5 years agoDo lazy-unmount to /storage directly
LongPing.WEI [Wed, 28 Nov 2018 03:13:23 +0000 (11:13 +0800)]
Do lazy-unmount to /storage directly

From man 2 umount:
MNT_DETACH (since Linux 2.4.11)

Perform a lazy unmount: make the mount point unavailable for new
accesses, immediately disconnect the filesystem and all filesystems
mounted below it from each other and from the mount table, and
actually perform the unmount when the mount point ceases to be busy.

So we don't need to unmount the filesystems under it one by one.

Bug: 113796163
Test: atest android.appsecurity.cts.PermissionsHostTest#testInteractiveGrant23
Change-Id: I6a0422466a9865ff6d17122505ca73d041de9d54

5 years agoFix signedness mismatch and integer underflow
Rubin Xu [Tue, 9 Oct 2018 15:13:38 +0000 (16:13 +0100)]
Fix signedness mismatch and integer underflow

persist_get_max_entries() is supposed to return an unsigned integer as the
maximum number of entries but it also wrongly returns "-1" as an error
condition. Also fix an issue where an unsigned subtraction in this routine
could lead to integer underflow.

Bug: 112731440
Test: manual
Change-Id: I9672e39bef2c12156dda7806a08c52044962c178

5 years agoClean up use of pipe
Paul Crowley [Fri, 30 Nov 2018 19:43:47 +0000 (11:43 -0800)]
Clean up use of pipe

Don't duplicate what's already in unique_fd.h
Also, code that tries to handle weird stdout condition won't work
because of cloexec; just don't try that.

My tests:
- Ensure Marlin device boots and vold_prepare_subdirs is called
successfully
- Try adb shell sm set-virtual-disk true, see that eg sgdisk output is
logged.

Bug: 26735063
Bug: 113796163
Test: details in commit
Change-Id: I5698ba0b4c8bd692a740a1bd445e677ad4815d11

5 years agoMerge "Refactor ForkExecvp to improve locking behaviour"
Paul Crowley [Thu, 6 Dec 2018 20:03:31 +0000 (20:03 +0000)]
Merge "Refactor ForkExecvp to improve locking behaviour"

5 years agoRefactor ForkExecvp to improve locking behaviour
Paul Crowley [Fri, 30 Nov 2018 19:43:47 +0000 (11:43 -0800)]
Refactor ForkExecvp to improve locking behaviour

Do our own fork/exec rather than using a library. This leads to
many improvements:

- unite the output recording path with the other path
- never concatenate arguments with spaces
- never use the shell
- move setexeccon after fork, so we don't need to take the lock
- general code refactor while we're there

My tests:
- Ensure Marlin device boots and vold_prepare_subdirs is called
successfully
- Try adb shell sm set-virtual-disk true, see that eg sgdisk output is
logged.

weilongping@huawei.com's tests:
- unlock a user's de and ce directory;
- connect to a OTG storage device or a sdcard and ensure the mount logic be successful

Bug: 26735063
Bug: 113796163
Test: details in commit
Change-Id: I0976413529d7cbeebf5b8649660a385f9b036f04

5 years agoMerge "Merge pie-platform-release (PPRL.181105.017, history only) into master"
Xin Li [Tue, 4 Dec 2018 22:09:27 +0000 (22:09 +0000)]
Merge "Merge pie-platform-release (PPRL.181105.017, history only) into master"

5 years agoMerge PQ1A.181205.006 from Pi-QPR1-Release into ToT for Pi-Platform release.\n\nBUG...
Bill Rassieur [Tue, 4 Dec 2018 17:00:13 +0000 (17:00 +0000)]
Merge PQ1A.181205.006 from Pi-QPR1-Release into ToT for Pi-Platform release.\n\nBUG: 120448245

Change-Id: I65b3aa4e1ad1d95464f0b4cd1af211be4fb1ddbc

5 years agoMerge "Remove dependency on libparcelfiledescriptor"
Andrey Kulikov [Tue, 4 Dec 2018 12:28:53 +0000 (12:28 +0000)]
Merge "Remove dependency on libparcelfiledescriptor"

5 years agoRemove dependency on libparcelfiledescriptor
Michael Wright [Tue, 4 Dec 2018 12:22:47 +0000 (12:22 +0000)]
Remove dependency on libparcelfiledescriptor

This library doesn't actually exist outside of ARC specific branches,
so it will break any ARC product builds.

Test: None
Change-Id: Ic73f470c93ea7d3590dc2b273624988291612344

5 years agoMerge pie-platform-release (PPRL.181105.017, history only) into master
Xin Li [Mon, 3 Dec 2018 23:33:24 +0000 (15:33 -0800)]
Merge pie-platform-release (PPRL.181105.017, history only) into master

Bug: 118454372
Change-Id: Ibc7ddf231ff61272439b9a621490acaff27ce563

5 years agoMerge "ARC++ swap for AppFuseUtil"
Treehugger Robot [Sat, 1 Dec 2018 07:22:19 +0000 (07:22 +0000)]
Merge "ARC++ swap for AppFuseUtil"

5 years agoMerge "Includes new static libfs_avb"
Treehugger Robot [Fri, 30 Nov 2018 06:59:38 +0000 (06:59 +0000)]
Merge "Includes new static libfs_avb"

5 years agoMerge "Extract AppFuse as a util"
Treehugger Robot [Fri, 30 Nov 2018 05:05:10 +0000 (05:05 +0000)]
Merge "Extract AppFuse as a util"

5 years agoIncludes new static libfs_avb
Bowgo Tsai [Thu, 29 Nov 2018 14:15:08 +0000 (22:15 +0800)]
Includes new static libfs_avb

Bug: 112103720
Test: boot crosshatch_mainline-userdebug
Change-Id: If33f6dbf7a31d57f61c0aca0296f2ff06c8b4a86

5 years agoMerge pi-qpr1-release PQ1A.181105.017.A1 to pi-platform-release
Bill Yi [Thu, 29 Nov 2018 02:35:05 +0000 (18:35 -0800)]
Merge pi-qpr1-release PQ1A.181105.017.A1 to pi-platform-release

Change-Id: I090e55f0f34ff556118caaecbb21169580c66ab6

5 years agoMerge "Use setmntent with "e" option"
Treehugger Robot [Wed, 28 Nov 2018 17:49:17 +0000 (17:49 +0000)]
Merge "Use setmntent with "e" option"

5 years agoUse setmntent with "e" option
LongPing.WEI [Fri, 23 Nov 2018 11:27:35 +0000 (19:27 +0800)]
Use setmntent with "e" option

Otherwise it will cause selinux warning in children processes sometimes

Change-Id: I41239c3f9779140622076c644a5f63051d00eaa8

5 years agoMerge "Fix error reporting in cp_commitChanges"
Daniel Rosenberg [Tue, 20 Nov 2018 21:58:20 +0000 (21:58 +0000)]
Merge "Fix error reporting in cp_commitChanges"

5 years agoFix error reporting in cp_commitChanges
Daniel Rosenberg [Fri, 9 Nov 2018 06:18:37 +0000 (22:18 -0800)]
Fix error reporting in cp_commitChanges

Only trys to commit if necessary, and reports errors
if commiting fails. RemoveFileIfExists returns true on
success.

Test: vdc checkpoint startCheckpoint, reboot, and then
      vdc checkpoint commitChanges
Bug: 111020314

Change-Id: Ie1b3e49beb3ca04f2881fcc595882c607368b477

5 years agoMerge "Add fsync for renaming user ce key path"
Treehugger Robot [Thu, 15 Nov 2018 21:35:25 +0000 (21:35 +0000)]
Merge "Add fsync for renaming user ce key path"

5 years agoAdd fsync for renaming user ce key path
Jie [Mon, 12 Nov 2018 07:26:02 +0000 (15:26 +0800)]
Add fsync for renaming user ce key path

Device can't start up after the following steps:
1. set screen lock to PIN/Pattern/Password
2. set screen lock to Swipe/None
3. power down immediately after pressing "YES, REMOVE"
4. reboot

failed log:
Failed to read from /data/misc/vold/user_keys/ce/0/current/keymaster_key_blob

root cause:
flushing data failed because of power down

issue:
https://partnerissuetracker.corp.google.com/u/1/issues/119382750

5 years agoARC++ swap for AppFuseUtil
Risan [Thu, 1 Nov 2018 16:26:31 +0000 (01:26 +0900)]
ARC++ swap for AppFuseUtil

Bug: 110379912
Test: Compiled.
Change-Id: Ib7910ba4df6c60d7125a07b07c62612ed4146ddb
Merged-In: Ib7910ba4df6c60d7125a07b07c62612ed4146ddb

5 years agoExtract AppFuse as a util
Risan [Thu, 1 Nov 2018 03:59:47 +0000 (21:59 -0600)]
Extract AppFuse as a util

Bug: 110379912
Test: testOpenProxyFileDescriptor
Change-Id: I0429a498d7b54682efe9b05815f3470e8745609e

5 years agoMerge "Change AppFuse mount location to vold namespace"
Treehugger Robot [Wed, 14 Nov 2018 07:27:38 +0000 (07:27 +0000)]
Merge "Change AppFuse mount location to vold namespace"

5 years agoChange AppFuse mount location to vold namespace
Risan [Sat, 27 Oct 2018 02:56:45 +0000 (20:56 -0600)]
Change AppFuse mount location to vold namespace

Previously, AppFuse is mounted in system_server's mount namespace. This
CL moves the mount location to vold namespace.

Bug: 110379912
Test: testOpenProxyFileDescriptor passes
Change-Id: Id93c26d5a98842c78f27850c83e15df619cec1ab

5 years agoMerge "StubVolume as first class Volume in Vold"
Treehugger Robot [Tue, 13 Nov 2018 19:20:38 +0000 (19:20 +0000)]
Merge "StubVolume as first class Volume in Vold"

5 years agoStubVolume as first class Volume in Vold
Risan [Sun, 28 Oct 2018 23:52:56 +0000 (08:52 +0900)]
StubVolume as first class Volume in Vold

StubVolume is a Volume that is maintained by external party such as the
ChromeOS processes in ARC++.

Bug: 110380403
Test: Tested on ARC++

Change-Id: I3198bd7283d5f60a524da3707dea7385ffec599d

5 years agoMerge "Wait for dm device to be ready before format"
Treehugger Robot [Mon, 5 Nov 2018 22:53:27 +0000 (22:53 +0000)]
Merge "Wait for dm device to be ready before format"

5 years agoWait for dm device to be ready before format
Paul Crowley [Tue, 30 Oct 2018 22:59:24 +0000 (15:59 -0700)]
Wait for dm device to be ready before format

It can sometimes take a moment for the dm-device to appear after
creation, causing operations on it such as formatting to fail.
Ensure the device exists before create_crypto_blk_dev returns.

Test: adb sm set-virtual-disk true and format as adoptable.
Bug: 117586466
Change-Id: Id8f571b551f50fc759e78d917e4ac3080e926722
Merged-In: Id8f571b551f50fc759e78d917e4ac3080e926722

5 years agoMerge changes from topic "e4crypt_to_fscrypt"
Eric Biggers [Mon, 29 Oct 2018 17:19:39 +0000 (17:19 +0000)]
Merge changes from topic "e4crypt_to_fscrypt"

* changes:
  vold: get the fscrypt kernel API declarations from linux/fs.h
  vold: rename from "ext4 encryption" to fscrypt

5 years agovold: get the fscrypt kernel API declarations from linux/fs.h
Eric Biggers [Tue, 23 Oct 2018 20:07:43 +0000 (13:07 -0700)]
vold: get the fscrypt kernel API declarations from linux/fs.h

bionic now has linux/fs.h from the 4.14 kernel, which has the fscrypt
kernel API declarations.  Replace the manual declarations in vold,
except for FS_AES_256_XTS_KEY_SIZE which is not available.

Test: built, booted device with f2fs encryption
Change-Id: I6a0e3117eaebe3baac7385421afce2169d46ad55

5 years agovold: rename from "ext4 encryption" to fscrypt
Eric Biggers [Tue, 23 Oct 2018 20:06:55 +0000 (13:06 -0700)]
vold: rename from "ext4 encryption" to fscrypt

We support file-based encryption on both ext4 and f2fs now, and the
kernel API is the same.  So rename things appropriately in vold:

    e4crypt => fscrypt
    ext4enc => fscrypt
    Ext4Crypt => FsCrypt
    EXT4_* => FS_*
    ext4_encryption_key => fscrypt_key

Additionally, the common functions shared by 'vold' and 'init' are now
in libfscrypt rather than ext4_utils.  So update vold to link to
libfscrypt and include the renamed headers.

Note: there's a chance of 'fscrypt' being confused with the dm-crypt
based encryption code in vold which is called 'cryptfs'.  However,
fscrypt is the name used in the kernel for ext4/f2fs/ubifs encryption,
and it's preferable to use the same name in userspace.

Test: built, booted device with f2fs encryption
Change-Id: I2a46a49f30d9c0b73d6f6fe09e4a4904d4138ff6

5 years agoMerge pie-platform-release to aosp-master - DO NOT MERGE
Bill Yi [Wed, 24 Oct 2018 21:48:22 +0000 (14:48 -0700)]
Merge pie-platform-release to aosp-master - DO NOT MERGE

Change-Id: I112d144eac39f426e22d3a66e4fe298306010c13

5 years agoMerge cherrypicks of [5317808, 5317809, 5318498, 5317873, 5318338, 5318195, 5318499...
android-build-team Robot [Sat, 20 Oct 2018 00:21:03 +0000 (00:21 +0000)]
Merge cherrypicks of [531780853178095318498531787353183385318195531849953178745317875531787653182435318244531853753185385318539531854053185415318542531854353185445318545531854653152105317756531855753185585318559531856053185615318339531854753185485318549531856253185635318564531856553185665318172531817353181745318550531840153181965317889531817553181765318577531857853185795318580531858153185035318390531850553183415318551] into pi-qpr1-release

Change-Id: Ia6434abde93ea6328659f8f08c3d5dbe4e69291d

5 years ago[DO NOT MERGE] Fix signedness mismatch and integer underflow
Rubin Xu [Tue, 9 Oct 2018 15:13:38 +0000 (16:13 +0100)]
[DO NOT MERGE] Fix signedness mismatch and integer underflow

persist_get_max_entries() is supposed to return an unsigned integer as the
maximum number of entries but it also wrongly returns "-1" as an error
condition. Also fix an issue where an unsigned subtraction in this routine
could lead to integer underflow.

Bug: 112731440
Test: manual
Change-Id: I9672e39bef2c12156dda7806a08c52044962c178
(cherry picked from commit 19ef1ae99a0138197e43658e84d860d17912a4a0)

5 years agoMerge pi-dr1-dev to aosp-master
Bill Yi [Fri, 19 Oct 2018 19:20:56 +0000 (12:20 -0700)]
Merge pi-dr1-dev to aosp-master

Change-Id: I5f9eb0c7ea0a3ba88865854e28b73806011d323e

5 years ago[automerger skipped] Merge "Remove spurious function declaration"
Daniel Rosenberg [Wed, 17 Oct 2018 00:12:32 +0000 (17:12 -0700)]
[automerger skipped] Merge "Remove spurious function declaration"
am: 090e05bd02  -s ours

Change-Id: I919eeb0ec529c444ea0a32835a4b0306c07fab45

5 years agoMerge "Remove spurious function declaration"
Treehugger Robot [Tue, 16 Oct 2018 23:55:28 +0000 (23:55 +0000)]
Merge "Remove spurious function declaration"

5 years agoMerge "Switch to exceptions for most cp calls"
Daniel Rosenberg [Tue, 16 Oct 2018 21:34:54 +0000 (14:34 -0700)]
Merge "Switch to exceptions for most cp calls"
am: ece7e231a6

Change-Id: Ib02d0a002f31834bb07cf8dd9446cec942880a77

5 years agoRemove spurious function declaration
Daniel Rosenberg [Fri, 12 Oct 2018 23:24:21 +0000 (16:24 -0700)]
Remove spurious function declaration

Test: Nothing changes
Change-Id: I27f0d832d33099efe25794987c307d773b5d987c
Merged-In: Icba16578608a6cbf922472e9d4ae5b8cf5f016c6

5 years agoMerge "Switch to exceptions for most cp calls"
Treehugger Robot [Tue, 16 Oct 2018 21:14:34 +0000 (21:14 +0000)]
Merge "Switch to exceptions for most cp calls"

5 years agoSwitch to exceptions for most cp calls
Daniel Rosenberg [Thu, 11 Oct 2018 01:52:04 +0000 (18:52 -0700)]
Switch to exceptions for most cp calls

This switches the checkpoint calls that don't need to return a value
to return 0 on success, and an error on failure. This will be transalted
to exceptions for java binder users. needsCheckpoint and needsRollback
still return a boolean value.

Test: vdc setCheckpoint 2 then reboot 3 times checking state
Bug: 112901762
Change-Id: Idd3b5e6036631562a86d5123f533b86cf3bd6032
Merged-In: Idd3b5e6036631562a86d5123f533b86cf3bd6032

5 years agoMerge "Handle retry count"
Daniel Rosenberg [Tue, 16 Oct 2018 04:19:59 +0000 (21:19 -0700)]
Merge "Handle retry count"
am: e74587af4d

Change-Id: I76c8625e58de0efb7b1d937ce7bcb8499c7fc279

5 years agoMerge "Handle retry count"
Treehugger Robot [Tue, 16 Oct 2018 01:25:34 +0000 (01:25 +0000)]
Merge "Handle retry count"

5 years agoHandle retry count
Daniel Rosenberg [Wed, 10 Oct 2018 02:26:57 +0000 (19:26 -0700)]
Handle retry count

Test: vdc setCheckpoint 2 then reboot 3 times checking state
Bug: 112901762
Change-Id: I85a71d059bca27b76175b9bd8465cc453f0ddb8d

5 years agoMerge PPR2.181005.003 from pi-release-2 into pi-platform-release.
Bill Rassieur [Wed, 10 Oct 2018 17:33:05 +0000 (17:33 +0000)]
Merge PPR2.181005.003 from pi-release-2 into pi-platform-release.

Change-Id: Ifb0130fa2b413d1b8a769684cffb6c6621ea9859
BUG: 117431430

5 years agoMerge "Add checkpointing support for A/B updates"
Daniel Rosenberg [Fri, 5 Oct 2018 01:48:04 +0000 (18:48 -0700)]
Merge "Add checkpointing support for A/B updates"
am: ba1752008d

Change-Id: I62cb1c6dce6c9eca1c3651b05d23cb893559d370

5 years agoMerge "Add checkpointing support for A/B updates"
Daniel Rosenberg [Fri, 5 Oct 2018 01:31:18 +0000 (01:31 +0000)]
Merge "Add checkpointing support for A/B updates"

5 years agoMerge "Use unique points for fstab"
Paul Lawrence [Thu, 4 Oct 2018 00:28:34 +0000 (17:28 -0700)]
Merge "Use unique points for fstab"
am: 1e1893812c

Change-Id: I64ce90c05417b8b96ddc1e96cd505ca2aff86082

5 years agoMerge "Use unique points for fstab"
Treehugger Robot [Wed, 3 Oct 2018 23:57:39 +0000 (23:57 +0000)]
Merge "Use unique points for fstab"

5 years agoAdd checkpointing support for A/B updates
Daniel Rosenberg [Wed, 3 Oct 2018 00:40:44 +0000 (17:40 -0700)]
Add checkpointing support for A/B updates

This adds implicit rollback support during A/B style updates.
If you explicitly start a checkpoint with -1, needsRollback will
trigger if the update fails, and should be used if any additional
cleanup is needed that is not covered by A/B itself.

Test: All Checkpoint tests pass
Bug: 111020314
Change-Id: I88b4a1098c6bac4dc1438a54c8a8f59577a6c17b

5 years agoUse unique points for fstab
Paul Lawrence [Wed, 3 Oct 2018 21:14:52 +0000 (14:14 -0700)]
Use unique points for fstab

Test: Checkpoint test script runs and passes
Change-Id: I13005da22aef5fda3d1e0941949db02ff0ff0870

5 years agoMerge "Make checkpointing work on ext4"
Paul Lawrence [Wed, 3 Oct 2018 20:31:25 +0000 (13:31 -0700)]
Merge "Make checkpointing work on ext4"
am: ac244261c8

Change-Id: I78da54f117c9c2710d2d1fbe4ec7e902bf944d5d

5 years agoMerge "Make checkpointing work on ext4"
Treehugger Robot [Wed, 3 Oct 2018 20:15:48 +0000 (20:15 +0000)]
Merge "Make checkpointing work on ext4"

5 years agoMake checkpointing work on ext4
Paul Lawrence [Fri, 21 Sep 2018 17:49:57 +0000 (10:49 -0700)]
Make checkpointing work on ext4

Test: All tests pass
Change-Id: I2a6cdf1edfe752f4633e1931e75d18659653938c

5 years agoMerge "Protect /mnt/scratch from stale umount on userdebug"
Mark Salyzyn [Tue, 2 Oct 2018 22:24:57 +0000 (15:24 -0700)]
Merge "Protect /mnt/scratch from stale umount on userdebug"
am: b39e6f2887

Change-Id: I2505bc0cf4fe31123c47bd10619830298c3a033a

5 years agoMerge "Protect /mnt/scratch from stale umount on userdebug"
Treehugger Robot [Tue, 2 Oct 2018 21:31:12 +0000 (21:31 +0000)]
Merge "Protect /mnt/scratch from stale umount on userdebug"

5 years agoProtect /mnt/scratch from stale umount on userdebug
Mark Salyzyn [Thu, 20 Sep 2018 17:09:27 +0000 (10:09 -0700)]
Protect /mnt/scratch from stale umount on userdebug

On userdebug protect /mnt/scratch. On user builds ensure that
/mnt/scratch is considered a stale mount so it can not be used.
vold runs before ro.debuggable is set, so this must be a compile
time decision.

Minor technical debt cleanup associated with using android::base.

Test: compile
Bug: 109821005
Change-Id: I8efdbedfe850dd24daecf03a37aea61de47edc7d
Merged-In: I8efdbedfe850dd24daecf03a37aea61de47edc7d

5 years agoMerge "Remove unmount_tree in VolumeManager."
Sudheer Shanka [Sat, 29 Sep 2018 00:33:19 +0000 (17:33 -0700)]
Merge "Remove unmount_tree in VolumeManager."
am: 9931db7e59

Change-Id: Ib02f999eb66c5685752abf99c0c77ba49dd60d74

5 years agoMerge "Remove unmount_tree in VolumeManager."
Sudheer Shanka [Fri, 28 Sep 2018 23:49:51 +0000 (23:49 +0000)]
Merge "Remove unmount_tree in VolumeManager."

5 years agoRemove unmount_tree in VolumeManager.
Sudheer Shanka [Thu, 27 Sep 2018 21:53:51 +0000 (14:53 -0700)]
Remove unmount_tree in VolumeManager.

This is not needed anymore since everything else is updated
to use android::vold::UnmountTree.

Bug: 111890351
Test: manual
Change-Id: Idb574469763fa3438fbfc40d6da786d87ac63c38

5 years agoMerge "Add unmountTree to utils."
Sudheer Shanka [Thu, 27 Sep 2018 20:14:30 +0000 (13:14 -0700)]
Merge "Add unmountTree to utils."
am: a64572431e

Change-Id: Ifdbdc90e22b4a681dcf0766919807109cf78ffca

5 years agoMerge "Add unmountTree to utils."
Sudheer Shanka [Thu, 27 Sep 2018 19:54:23 +0000 (19:54 +0000)]
Merge "Add unmountTree to utils."

5 years agoAdd unmountTree to utils.
Sudheer Shanka [Tue, 25 Sep 2018 21:22:07 +0000 (14:22 -0700)]
Add unmountTree to utils.

Bug: 111890351
Test: builds without any errors
Change-Id: I62a94c9e8d101756b686b402774f08a1d71cf875

5 years agoMerge "Add support for checkpointing"
Daniel Rosenberg [Tue, 25 Sep 2018 22:10:22 +0000 (15:10 -0700)]
Merge "Add support for checkpointing"
am: a3381ffc3f

Change-Id: I52e70b0f886281280bb050751060b975e103376d

5 years agoMerge "Add support for checkpointing"
Treehugger Robot [Tue, 25 Sep 2018 21:52:19 +0000 (21:52 +0000)]
Merge "Add support for checkpointing"

5 years agoMerge changes from topic "exfat-update"
Oleksiy Avramchenko [Mon, 24 Sep 2018 19:01:36 +0000 (12:01 -0700)]
Merge changes from topic "exfat-update"
am: a2a227e382

Change-Id: I13daa826be04c72ab18175d3ceee6212b7304731

5 years agoMerge changes from topic "exfat-update"
Treehugger Robot [Mon, 24 Sep 2018 18:52:56 +0000 (18:52 +0000)]
Merge changes from topic "exfat-update"

* changes:
  Use exFAT for SDXC cards
  Add GetBlockDevSize, GetBlockDevSectors helpers

5 years agoMerge "Update vold to log only debug or higher level messages."
Jeff Sharkey [Mon, 24 Sep 2018 17:25:07 +0000 (10:25 -0700)]
Merge "Update vold to log only debug or higher level messages."
am: 9bd07d8760

Change-Id: Idd8482fc0287d51d962ead0dd4c1f8f8e514d9de

5 years agoMerge "Update vold to log only debug or higher level messages."
Jeff Sharkey [Mon, 24 Sep 2018 17:06:25 +0000 (17:06 +0000)]
Merge "Update vold to log only debug or higher level messages."

5 years agoUse exFAT for SDXC cards
Oleksiy Avramchenko [Wed, 23 May 2018 16:59:48 +0000 (18:59 +0200)]
Use exFAT for SDXC cards

When both VFAT and exFAT are supported VFAT will only be used to
format card. Use exFAT for cards larger than 32GB per SDXC standard.

Test: build, manual, mount exFAT volume
Bug: 80202067
Change-Id: If504f9685256a669c5801a69d69d5a214ad27455

5 years agoAdd GetBlockDevSize, GetBlockDevSectors helpers
Oleksiy Avramchenko [Wed, 23 May 2018 08:50:46 +0000 (10:50 +0200)]
Add GetBlockDevSize, GetBlockDevSectors helpers

Helpers to get a block device size in bytes or 512 byte sectors,
using BLKGETSIZE64 and returning value of uint64_t type.

This also removes get_blkdev_size().

Test: build, manual, mount exFAT volume
Bug: 80202067
Change-Id: Ib07e8ac6ef7ff49de0ed570d1fa202e8b558b80c

5 years agoAdd support for checkpointing
Daniel Rosenberg [Tue, 28 Aug 2018 08:58:49 +0000 (01:58 -0700)]
Add support for checkpointing

Checkpointing uses a combination of files on the meta partition
and the checkpoint= fs_mgr flag. Checkpointed partitions will
revert to their starting state on reboot unless checkpoint commit
is called.

Test: Run vdc commands, check file on metadata
Merged-In: Icba16578608a6cbf922472e9d4ae5b8cf5f016c6
Change-Id: Icba16578608a6cbf922472e9d4ae5b8cf5f016c6

5 years agoUpdate vold to log only debug or higher level messages.
Sudheer Shanka [Fri, 21 Sep 2018 17:54:54 +0000 (10:54 -0700)]
Update vold to log only debug or higher level messages.

This will allow adding lots of verbose logs which can be enabled
only during local testing/debugging. Update the existing verbose
level logs to debug level since we want those to be logged by
default.

Test: manual
Change-Id: Ib05e2b6efa71308458d49affb6ed81d3975b28ab

5 years agoMerge "health.filesystem HAL renamed to health.storage"
Yifan Hong [Fri, 21 Sep 2018 05:38:46 +0000 (22:38 -0700)]
Merge "health.filesystem HAL renamed to health.storage"
am: 15b9656ae9

Change-Id: Id587f968eea321254589a0d0f3cd5fc23be56739

5 years agoMerge "clang-format the rest of the files"
Paul Crowley [Fri, 21 Sep 2018 05:38:27 +0000 (22:38 -0700)]
Merge "clang-format the rest of the files"
am: 1934619b8b

Change-Id: I6265495330a13f687628b2143b9f78eb25380104

5 years agoMerge "health.filesystem HAL renamed to health.storage"
Yifan Hong [Thu, 20 Sep 2018 17:26:53 +0000 (17:26 +0000)]
Merge "health.filesystem HAL renamed to health.storage"