This commit is contained in:
parent
a1a5794250
commit
ad66b1293d
4 changed files with 204 additions and 5 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue