1*b7c941bbSAndroid Build Coastguard Worker## How to update APK files and DM files in the `res` folder 2*b7c941bbSAndroid Build Coastguard Worker 3*b7c941bbSAndroid Build Coastguard WorkerThe source code of the test app is in `../app/SplitApp`. After updating the 4*b7c941bbSAndroid Build Coastguard Workersource code, you need to update the APK files and DM files in the `res` folder. 5*b7c941bbSAndroid Build Coastguard Worker 6*b7c941bbSAndroid Build Coastguard Worker### Updating APK files 7*b7c941bbSAndroid Build Coastguard Worker 8*b7c941bbSAndroid Build Coastguard Worker1. Build the APK from source. 9*b7c941bbSAndroid Build Coastguard Worker 10*b7c941bbSAndroid Build Coastguard Worker ``` 11*b7c941bbSAndroid Build Coastguard Worker m CtsDexMetadataSplitApp 12*b7c941bbSAndroid Build Coastguard Worker ``` 13*b7c941bbSAndroid Build Coastguard Worker 14*b7c941bbSAndroid Build Coastguard Worker2. Copy the APK to the `res` folder. 15*b7c941bbSAndroid Build Coastguard Worker 16*b7c941bbSAndroid Build Coastguard Worker ``` 17*b7c941bbSAndroid Build Coastguard Worker cp \ 18*b7c941bbSAndroid Build Coastguard Worker $ANDROID_BUILD_TOP/out/host/linux-x86/cts/android-cts/testcases/CtsDexMetadataSplitApp/x86_64/CtsDexMetadataSplitApp.apk \ 19*b7c941bbSAndroid Build Coastguard Worker res/CtsDexMetadataSplitApp.apk 20*b7c941bbSAndroid Build Coastguard Worker ``` 21*b7c941bbSAndroid Build Coastguard Worker 22*b7c941bbSAndroid Build Coastguard Worker Note: You may need to replace `x86_64` with a different ISA, depending on 23*b7c941bbSAndroid Build Coastguard Worker the product that you `lunch`-ed. 24*b7c941bbSAndroid Build Coastguard Worker 25*b7c941bbSAndroid Build Coastguard Worker3. Repeat the steps above for the split APK (`CtsDexMetadataSplitAppFeatureA`). 26*b7c941bbSAndroid Build Coastguard Worker 27*b7c941bbSAndroid Build Coastguard Worker### Updating DM files 28*b7c941bbSAndroid Build Coastguard Worker 29*b7c941bbSAndroid Build Coastguard WorkerThe DM files contain profiles, whose headers have the dex checksums that need to 30*b7c941bbSAndroid Build Coastguard Workermatch the dex files in the APKs. Therefore, after updating the APKs, you must 31*b7c941bbSAndroid Build Coastguard Workerupdate the DM files. 32*b7c941bbSAndroid Build Coastguard Worker 33*b7c941bbSAndroid Build Coastguard Worker1. Create a binary profile from the text profile. 34*b7c941bbSAndroid Build Coastguard Worker 35*b7c941bbSAndroid Build Coastguard Worker ``` 36*b7c941bbSAndroid Build Coastguard Worker profman \ 37*b7c941bbSAndroid Build Coastguard Worker --create-profile-from=res/CtsDexMetadataSplitApp.prof.txt \ 38*b7c941bbSAndroid Build Coastguard Worker --apk=res/CtsDexMetadataSplitApp.apk \ 39*b7c941bbSAndroid Build Coastguard Worker --dex-location=base.apk \ 40*b7c941bbSAndroid Build Coastguard Worker --reference-profile-file=/tmp/primary.prof \ 41*b7c941bbSAndroid Build Coastguard Worker --output-profile-type=app 42*b7c941bbSAndroid Build Coastguard Worker ``` 43*b7c941bbSAndroid Build Coastguard Worker 44*b7c941bbSAndroid Build Coastguard Worker Note: `--dex-location` must be set to `base.apk`, regardless of the actual 45*b7c941bbSAndroid Build Coastguard Worker APK name. 46*b7c941bbSAndroid Build Coastguard Worker 47*b7c941bbSAndroid Build Coastguard Worker Note: `--reference-profile-file` is the output. You can specify a different 48*b7c941bbSAndroid Build Coastguard Worker output location, but the filename must be `primary.prof`. 49*b7c941bbSAndroid Build Coastguard Worker 50*b7c941bbSAndroid Build Coastguard Worker Tip: If `profman` is not found, run `m profman`. 51*b7c941bbSAndroid Build Coastguard Worker 52*b7c941bbSAndroid Build Coastguard Worker2. Delete the existing DM file and create the DM file from the binary profile. 53*b7c941bbSAndroid Build Coastguard Worker 54*b7c941bbSAndroid Build Coastguard Worker ``` 55*b7c941bbSAndroid Build Coastguard Worker rm res/CtsDexMetadataSplitApp.dm 56*b7c941bbSAndroid Build Coastguard Worker zip -j res/CtsDexMetadataSplitApp.dm /tmp/primary.prof 57*b7c941bbSAndroid Build Coastguard Worker ``` 58*b7c941bbSAndroid Build Coastguard Worker 59*b7c941bbSAndroid Build Coastguard Worker3. Repeat the steps above for the split APK (`CtsDexMetadataSplitAppFeatureA`). 60