ArtistGui
ArtistGui copied to clipboard
ARTist's deployment application, for code-injection on an Android device.
On x86, it is possible to import modules that are compiled for arm. It is possible to detect the mismatch by looking at the elf header of the artist-module.so when...
- Adds systemserver instrumentation to ArtistGui (implements #85 ) - fixes #26 - Prepares support for boot.oat and other non-app instrumentations
Until now, we either use ArtistGui to instrument apps, or we deploy ARTist as the system compiler in a custom AOSP build to instrument `boot.oat/art`(AOSP compile time), the systemserver and...
ArtistGui should import a module, instrument an app and start it triggered by an explicit custom broadcast. This is needed in order to auto deploy modules from an IDE. Relates...
https://github.com/Project-ARTist/ArtistGui/blob/efa7d3d5d2850940119dcebc94a786bad7af8b66/app/src/main/java/saarland/cispa/artist/artistgui/packagelist/view/AppIconCache.java#L55 [getDrawableForDensity](https://developer.android.com/reference/android/content/res/Resources.html#getDrawableForDensity(int,%20int,%20android.content.res.Resources.Theme)) might throw a [Resources.NotFoundException](https://developer.android.com/reference/android/content/res/Resources.NotFoundException.html) which causes the App to crash. Since _appIcon_ already can be null, just catch this Exception too. Might be nicer to return the default-Icon.
There are situation where multiple modules want to modify the end of the same method. If one module injects a return statement first the changes of the second module will...
We're using AsyncLoader everywhere in the app but the Loader API is deprecated.
It'd be nice to have the an option to import a module before instrumenting an app (during module selection). It's basically a shortcut.
The ModuleImporter blindly overwrites other modules if both package names match.
The ModuleImporter is very naively implemented. It hopes the import succeeds always. The importModule(...) catches IOExceptions and returns null which lead to a NullPointerException in the AsyncTask. The exceptions get...