add classloader paper

This commit is contained in:
Jean-Marie Mineau 2025-06-24 20:34:34 +02:00
parent c5e119e877
commit dd86422fd3
Signed by: histausse
GPG key ID: B66AEEDA9B645AD2
12 changed files with 1704 additions and 3 deletions

13
4_class_loader/5_ttv.typ Normal file
View file

@ -0,0 +1,13 @@
== Threat to validity <sec:cl-ttv>
During the analysis of the ART internals, we made the hypothesis that its different operating modes are equivalent: we analyzed the loading process for classes stored as non-optimized `.dex` format, and not for the pre-compiled `.oat`.
It is a reasonable hypothesis to suppose that the two implementations have been produced from the same algorithm using two compilation workflows.
Similarly, we assumed that the platform classes stored in `boot.art` are the same as the ones in `BOOTCLASSPATH`.
We confirm empirically our hypothesis on an Android Emulator, but we may have missed some edge cases.
The comparison of Smali code can lead to underestimated values, for example, if the compilation process performs minor modifications such as instruction reordering.
The ratios reported in this study for the comparison of code are thus a lower bound and would be higher with a more precise comparison.
In addition, platform classes are stored differently in older versions of Android and could not be easily retrieved.
For this reason, we did not compared the classes found in applications to their versions older than SDK 32 to avoid producing unreliable statistics for those versions.