There are two categories of tests:
1. Package installation with .fsv_sig
* .apk, .dm, including the split ones should all or none be installed
with their corresponding .fsv_sig files
2. End-to-end fs-verity test of on-access verification
* When fs-verity is enabled to a file, if the on-disk content is
changed, the read should fail.
See class comment in ApkVerityTest.java for the test details.
Brief directory layout overview:
* src/
- Actual test
* ApkVerityTestApp/
- Dummy app for testing, including a split
* testdata/
- Some artifacts, signing key and fs-verity signatures
* block_device_writer/
- Helper binary for write a file directly on disk
Test: atest
Bug: 112039386
Change-Id: I3b8229037db682f36fda9d5cafd14caf6b39501d
516 B
516 B
This test only runs on rooted / debuggable device.
The test tries to install subsets of base.{apk,dm}, split.{apk,dm} and their corresponding .fsv_sig files (generated by build rule). If installed, the tests also tries to tamper with the file at absolute disk offset to verify if fs-verity is effective.
How to generate dex metadata (.dm)
adb shell profman --generate-test-profile=/data/local/tmp/primary.prof adb pull /data/local/tmp/primary.prof zip foo.dm primary.prof