ARTist for Users

ARTist can be a handy tool when it comes to customizing, analysing or in general modifying your installed applications. While ARTist itself is only the framework, the actual functionality is implemented in so called modules.

Modules can be anything, they can change the visual appearance of applications, analyze their usage of private data or hardening their security. What you can do pretty much comes down to what modules you choose to install and use, and which applications you choose as targets.

Please keep in mind that, as of now, ARTist is in a very early stage of development and hence, there is not a large set of modules available, yet. However, we have some amazing tools in the working, so please bear with us ;-) In the meantime, we consider ARTist more like a tool for power users, curious developers and researchers.

ArtistGui is a regular Android application that allows to setup ARTist modules and instrument installed applications. Also, in order to function correctly, you need a rooted device. The reason is purely technical, but the short version is: We need to move the modified (compiled) version of the app into a directory that is protected by the operating system so that apps cannot change each other. In our case, however, this is exactly what you want ARTist to do, so you need to provide it with elevated privileges to do so.

Getting Started

Ok so you have a rooted device and you want to try out ARTist yourself. You can do so by following these 5 steps:

  1. Pick a version of ARTist from our binaries page and download it onto your device.
    • You need to pick a version that is compatible with the hardware architecture of your device. If in doubt, try arm.
  2. Click on the downloaded .apk file to install it as an Android application.
    • The system will ask you to allow installation from unknown sources. We recommend to only allow this for the downloaded ArtistGui once and immediately deactivate the setting afterwards.
  3. In the side drawer, you can find the modules entry where you can import modules from the filesystem.
    • Our binaries page lists available modules that are ready for deployment.
    • Modules can be added through the plus sign in the top right corner.
    • Tapping on a module pops up a dialogue where the module can be removed again.
    • For this tutorial, we will use the template module from the binaries page.
  4. Now use the side drawer to navigate to the list of installed applications.
    • All entries in this list are installed applications.
    • Tapping on one of them shows a dialog window where you can decide which modules you want to apply during instrumentation, or to remove the current instrumentation altogether.
    • When you click on instrument, ARTist will recompile the app in the background and apply the selected modules.
    • You can keep an app instrumented, too, by tapping on the corresponding switch in the dialog window. ArtistGui will make sure that as soon as the app is updated, it is instrumented again. If this switch stays deactivated, an app update can revert the changes introduced by ARTist.

      This feature is currently not available as we are applying new changes to the UI during the introduction of dynamically loaded modules. It will be fixed soon!

  5. In our example, the template module injects code into target applications so that they write to the Android log (logcat) whether the instrumentation worked as expected.

Congratulations, you successfully installed and used your first ARTist module. You can now go ahead and customize your system with other modules.

Please also read the important security note before using further modules.

A Note On Security

Modules essentially allow to inject and execute own code in the context of an application. Hence, a module has full access to an instrumented apps’ files and all other data. Please only ever download modules from trusted sources.

In addition, a robust and stable execution of apps cannot be guaranteed in the presence of modules, hence bugs and problems in those modules can render your apps non-functional. Unless data was irrevocably corrupted, you can always roll back at least the code by removing all instrumentation from the app again.