Imagination PowerVR SDK Blog

PVRTrace: how to do PVRTrace on Android 4.2 device (with root)

pvrtrace
pvrhub

#1

Background:

I have a device with full access. (I can build and flash it, and adb@root is enabled)

I don’t have source code of apps to be traced.



I want:

Trace selected apps.

It seems that I cannot get it done manually. (Tracing the whole system is NG)



Problem:

PVRHub complains about “no root access”. First error log is attached.

What should I do to make PVRHub happy?

The problem here is that I have no idea whatever su binary or additional apk is PVRHub expecting.

(Why the SDK doesn’t ship or link the proven working one?)



Error log:

03-18 22:21:58.470 8534 8534 I (PVRHub): Root access rejected [java.io.IOException] : write failed: EPIPE (Broken pipe)

03-18 22:21:58.470 8534 8534 W System.err: java.io.IOException: write failed: EPIPE (Broken pipe)

03-18 22:21:58.470 8534 8534 W System.err: at libcore.io.IoBridge.write(IoBridge.java:462)

03-18 22:21:58.470 8534 8534 W System.err: at java.io.FileOutputStream.write(FileOutputStream.java:202)

03-18 22:21:58.470 8534 8534 W System.err: at java.io.OutputStream.write(OutputStream.java:82)

03-18 22:21:58.470 8534 8534 W System.err: at java.io.DataOutputStream.writeBytes(DataOutputStream.java:156)

03-18 22:21:58.470 8534 8534 W System.err: at com.powervr.PVRHub.PVRHub.canHasRoot(PVRHub.java:1333)

03-18 22:21:58.470 8534 8534 W System.err: at com.powervr.PVRHub.PVRHub.onCreate(PVRHub.java:616)

03-18 22:21:58.470 8534 8534 W System.err: at android.app.Activity.performCreate(Activity.java:5106)

03-18 22:21:58.470 8534 8534 W System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)

03-18 22:21:58.470 8534 8534 W System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)

03-18 22:21:58.470 8534 8534 W System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2234)

03-18 22:21:58.470 8534 8534 W System.err: at android.app.ActivityThread.access$600(ActivityThread.java:145)

03-18 22:21:58.470 8534 8534 W System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238)

03-18 22:21:58.470 8534 8534 W System.err: at android.os.Handler.dispatchMessage(Handler.java:99)

03-18 22:21:58.470 8534 8534 W System.err: at android.os.Looper.loop(Looper.java:137)

03-18 22:21:58.470 8534 8534 W System.err: at android.app.ActivityThread.main(ActivityThread.java:5052)

03-18 22:21:58.470 8534 8534 W System.err: at java.lang.reflect.Method.invokeNative(Native Method)

03-18 22:21:58.470 8534 8534 W System.err: at java.lang.reflect.Method.invoke(Method.java:511)

03-18 22:21:58.480 8534 8534 W System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)

03-18 22:21:58.480 8534 8534 W System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)

03-18 22:21:58.480 8534 8534 W System.err: Caused by: libcore.io.ErrnoException: write failed: EPIPE (Broken pipe)

03-18 22:21:58.480 8534 8534 W System.err: at libcore.io.Posix.writeBytes(Native Method)

03-18 22:21:58.480 8534 8534 W System.err: at libcore.io.Posix.write(Posix.java:187)

03-18 22:21:58.480 8534 8534 W System.err: at libcore.io.BlockGuardOs.write(BlockGuardOs.java:197)

03-18 22:21:58.480 8534 8534 W System.err: at libcore.io.IoBridge.write(IoBridge.java:457)

03-18 22:21:58.480 8534 8534 W System.err: … 18 more

03-18 22:21:58.510 8534 8534 I (PVRHub): Done parsing pvrtrace.cfg

03-18 22:21:58.510 8534 8534 I (PVRHub): Done parsing


#2

Hi,



The mechanisms for an application (such as PVRHub) to gain root permissions are device specific. Because of this, we can’t ship the tool with out of the box support for every device. If you can, you should install a suitable build of SuperSU to your target.



Alternatively, you can launch the PVRHubDaemon from a root shell:


  1. cd /data/data/com.powervr.PVRHub/bin

  2. PVRHubDaemon &



Once PVRHubdaemon is running, you should restart PVRHub. PVRHub will then communicate with the daemon to perform root operations.

We've improved the documentation in our imminent 3.3 SDK to clarify the steps required to get PVRHub working.

Regards,
Joe