Traditionally Mali Graphics Debugger (MGD) works on a rooted device, in this mode an interceptor layer sits between your application and the driver. Your application then calls into this interceptor layer and the interceptor then sends a copy of this data back to the MGD application and passes the call on to the driver.
However, this isn't the only way that MGD can be used. The second option has all of the functionality of the first option with the added benefit that it will also work on a standard Android device with no modification. The trade-off is that you need access to the full source code of the application that you want to profile. This blog explores the second option so you can debug your applications on non-rooted devices.
Installation
Copy the folder called android-non-root from the target directory in your MGD installation to your application's root folder.
In your target application's Android.mk add the following code.
include $(LOCAL_PATH)/../android-non-root/MGD.mk
static { try { System.loadLibrary("MGD"); } catch( UnsatisfiedLinkError e ) { // Feel free to remove this log message. Log.i("[ MGD ]", "libMGD.so not loaded."); } }
The first thing we need to do is to install the MGDDaemon application on the target. The MGDDaemon application is responsible for sending the information from the interceptor library to the host. Without it the host won't receive any data.
Following these steps you should be able to use MGD on any Mali-based platform. If you have any issues please raise them on the Community and someone will be more than happy to assist you through the process.