summaryrefslogtreecommitdiff
path: root/EncryptInplace.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Consistently use CLOCK_MONOTONIC for timing encryptionDenis Hsu2020-01-201-1/+8
| | | | | | | | | | | | | | | time_started in encryptGroupsData is set from and compared to clock_gettime(CLOCK_MONOTONIC, ...) nearly everywhere: "Clock that cannot be set and represents monotonic time since some unspecified starting point". However in cryptfs_enable_inplace_f2fs() it is set from a different clock, time(NULL), with the result that the setprop calls that indicate progress are wrong and can be called much too often. The fix is to make this function consistent with cryptfs_enable_inplace_ext4. Bug: 146877356 Change-Id: I2707180e5c5bf723a5a880f6a3aac47f2bb34ccd (cherry picked from commit 1740effeaa29f7dd84d9068a98b42590ea7e99ce)
* system: vold: Close crypto block device if it was createdNeeraj Soni2019-12-141-4/+4
| | | | | | | | | Crypto block device is needed for device mapper based data encryption for any partition. Close the device file pointer when data packet is encrypted. CRs-Fixed: 2417032 Change-Id: I0fa7c4829665b8a505a5abf598bb54b7835f71e0
* system: vold: fix block disk encryption to work with metadata encryptionNeeraj Soni2019-12-141-62/+7
| | | | | | | | | | | | | | Metadata encryption essentially encrypts userdata filesystem metadata using Inline crypto engine based block disk encryption concept. New Inline crypto engine based block disk encryption design do not create crypto block device. When metadata encryption was enabled it needed crypto block device to encrypt the metadata. So if metadata partition is mounted on device block disk encryption did not work. Fix this by checking whether crypto block device was created or not to switch between two data encryption calls. CRs-Fixed: 2389467 Change-Id: Ic46244ab08f31e71865636f1a2470f914ca88547
* system: vold: Remove crypto block device creationAnilKumar Chimata2019-12-141-0/+77
| | | | | | | | | Crypto block device is not required for ICE based HW FDE solution. This introduces additional delay and is redundant since data is encrypted inline. CRs-Fixed: 2210986 Change-Id: I67c044c35e92d2aa9413bc3448b6193f6b6a01d7
* Make ext4 userdata checkpoints work with metadata encryptionPaul Lawrence2019-06-271-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When both ext4 user data checkpoints and metadata encryption are enabled, we are creating two stacked dm devices. This had not been properly thought through or debugged. Test: Enable metadata encryption on taimen (add keydirectory=/metadata/vold/metadata_encryption to flags for userdata in fstab.hardware) Unfortunately metadata is not wiped by fastboot -w, so it is necessary to rm metadata/vold -rf whenever you wipe data. fastboot flashall -w works fastboot reboot -w works A normal boot works Disable checkpoint commits with setprop persist.vold.dont_commit_checkpoint 1 vdc checkpoint startCheckpoint 10 adb reboot wait for device to fully boot then adb reboot Wait for device to fully boot then adb logcat -d | grep Checkpoint shows the rollback in the logs This tests encryption on top of checkpoints with commit, encryption without checkpoints, and rollback, which seems to be the key cases. Also ran same tests on unmodified Taimen and Blueline Bug: 135905679 Merged-In: I8365a40298b752af4bb10d00d9ff58ce04beab1f Change-Id: I8365a40298b752af4bb10d00d9ff58ce04beab1f
* EncryptInplace: Rename variableGreg Kaiser2018-12-201-3/+3
| | | | | | | | | 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
* Update vold to log only debug or higher level messages.Sudheer Shanka2018-09-211-1/+1
| | | | | | | | | | 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
* clang-format many files.Paul Crowley2018-09-181-68/+54
| | | | | Test: Format-only changes; treehugger suffices. Change-Id: I23cde3f0bbcac13bef555d13514e922c79d5ad48
* Add a mount with metadata encryption servicePaul Crowley2018-02-011-17/+34
| | | | | | | | | Don't use the FDE flow to support metadata encryption; just provide a vold service which directly mounts the volume and use that. Bug: 63927601 Test: Boot Taimen to SUW with and without metadata encryption. Change-Id: Ifc6a012c02c0ea66893020ed1d0da4cba6914aed
* Refactor logging in EncryptInplace.cppPaul Crowley2018-02-011-98/+77
| | | | | | | | | Done as part of work towards metadata encryption. Bug: 63927601 Test: Boot Taimen to SUW Change-Id: I0f5fda0e002944ab658756c7cfcb386c3658a446
* Remove CheckBattery altogetherPaul Crowley2017-10-031-15/+0
| | | | | | Test: changed Angler fstab to encryptable and encrypted. Bug: 16868177 Change-Id: I17d36ea838d6d96f0752b2d6d03b1f9a781ed018
* <stdbool.h> unnecessary in C++.Elliott Hughes2017-09-081-1/+0
| | | | | | Bug: N/A Test: builds Change-Id: Iddbd364e581477b8304dc6f0764f153dbcf122a7
* Refactor to lay the groundwork for metadata encryptionPaul Crowley2017-04-211-0/+656
Bug: 26778031 Test: Angler, Marlin build and boot Change-Id: Ic136dfe6195a650f7db76d3489f36da6a1929dc5