wip
All checks were successful
/ test_checkout (push) Successful in 56s

This commit is contained in:
Jean-Marie Mineau 2025-07-19 02:00:25 +02:00
parent a1a5794250
commit ad66b1293d
Signed by: histausse
GPG key ID: B66AEEDA9B645AD2
4 changed files with 204 additions and 5 deletions

View file

@ -1,4 +1,4 @@
#import "../lib.typ": todo, APK, DEX, JAR, OAT, eg, ART, paragraph
#import "../lib.typ": todo, APK, DEX, JAR, OAT, eg, ART, paragraph, jm-note
/*
* Parler de dex lego et du papier qui encode les resultats d'anger en jimple
@ -166,7 +166,7 @@ When loaded dynamically, the classes are in a different classloader, and the cla
We decided to restrain our scope to the use of class loader from the Android SDK.
In the abscence of class collision, those class loader behave seamlessly and adding the classes to application maintains the behavior.
#todo[this is redundant an messy:]
#jm-note[
When we detect a collision, we rename one of the classes colliding in order to be able to differenciate both classes.
To avoid breaking the application, we then need to rename all references to this specific class, an be carefull not to modify references to the other class.
To do so, we regroup each classes by the classloaders defining them, then, for each colliding class name and each classloader, we check the actual class used by the classloader.
@ -177,6 +177,7 @@ The pseudo-code in @lst:renaming-algo show the three steps of this algorithm:
- first we detect collision and rename classes definitions to remove the collisions
- then we rename the reference to the colliding classes to make sure the right classes are called
- ultimately, we merge the modified dexfiles of each class loaders into one android application
][this is redundant an messy]
#figure(
```python