Git Product home page Git Product logo

Comments (14)

Stericson avatar Stericson commented on July 29, 2024 1

@Fusion Can you confirm whether this is still an open issue or can be closed?

from roottools.

Stericson avatar Stericson commented on July 29, 2024

Hello,

try following these steps:

In Eclipse, right click your project, navigate to "Build Path", then to
"configure build path"
Now choose "add External Jar"
Navigate to the
RootToolshttps://code.google.com/p/roottools/wiki/RootTools .jar
file you download and choose it.
Navigate to "Order and Export" make sure the box is ticked next to the
library, and move it to the top of the list.

Finish up by choosing "ok"

On Thu, Feb 27, 2014 at 5:12 PM, Jeff Creswell [email protected]:

I followed the directions on the RootTools usage and run Java as root wiki
pages, but when I load my app with the following in onCreate() I get a
ClassNotFoundException: com.stericson.RootTools.containers.RootClass:

import com.stericson.RootTools.RootTools;
import com.stericson.RootTools.containers.RootClass;
import com.stericson.RootTools.exceptions.RootDeniedException;
import com.stericson.RootTools.execution.CommandCapture;
import com.stericson.RootTools.execution.JavaCommandCapture;
import com.stericson.RootTools.execution.Shell;
...
@OverRide https://github.com/Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

RootTools.debugMode = true; //ON
RootTools.log("roottools is logging");
RootTools.handlerEnabled = false;

Shell shell;
try {
shell = RootTools.getShell(true);
JavaCommandCapture cmd = new JavaCommandCapture(
43,
false,
this,
"com.mycompany.TestActivity.RootToolsTest") {

    @Override
    public void commandOutput(int id, String line) {
        super.commandOutput(id, line);

    }
};
shell.add(cmd);

} catch (Exception e) {
e.printStackTrace();
}

...
@RootClass.Candidate
private class RootToolsTest{
public RootToolsTest(){
Log.d("RootToolsTest", "testing a Java class run as root");
}
}

The same thing happened when I tried RootTools' test class
com.stericson.RootToolsTests.NativeJavaClass. I've tried a number of
configurations for the placement and inclusion of the RootTools.jar file
(most notably ensuring that the RootTools jar is checked for export and
moved to the top of the order and export list in Eclipse) but the
ClassNotFoundException persists. The exact logcat output follows:

06-02 07:27:45.529: D/RootTools v3.4(5165): roottools is logging
06-02 07:27:45.529: D/RootTools v3.4(5165): Starting Root Shell!
06-02 07:27:45.539: D/RootTools v3.4(5165): Starting shell: su
06-02 07:27:46.409: D/RootTools v3.4(5165): CommandHandler not created
06-02 07:27:46.429: D/RootTools v3.4(5165): Executing: dalvikvm -cp
/data/data
/com.hdradio.fmdelverrooted/files/anbuild.dex
com.android.internal.util.WithFramework
com.stericson.RootTools.containers.RootClass
com.hdradio.fmdelver.core.DelverActivity.RootToolsTest
06-02 07:27:46.749: D/Command(5165): ID: 43,
java.lang.ClassNotFoundException:
com.stericson.RootTools.containers.RootClass
06-02 07:27:46.759: D/Command(5165): ID: 43,at
java.lang.Class.classForName(Native Method)
06-02 07:27:46.759: D/Command(5165): ID: 43,at
java.lang.Class.forName(Class.java:217)
06-02 07:27:46.759: D/Command(5165): ID: 43,at
java.lang.Class.forName(Class.java:172)
06-02 07:27:46.769: D/Command(5165): ID: 43,at
com.android.internal.util.WithFramework.main(WithFramework.java:36)
06-02 07:27:46.769: D/Command(5165): ID: 43,at
dalvik.system.NativeStart.main(Native
Method)
06-02 07:27:46.769: D/Command(5165): ID: 43, Caused by:
java.lang.NoClassDefFoundError:
com/stericson/RootTools/containers/RootClass
06-02 07:27:46.769: D/Command(5165): ID: 43, ... 5 more
06-02 07:27:46.769: D/Command(5165): ID: 43, Caused by:
java.lang.ClassNotFoundException:
com.stericson.RootTools.containers.RootClass
06-02 07:27:46.769: D/Command(5165): ID: 43,at
dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
06-02 07:27:46.769: D/Command(5165): ID: 43,at
java.lang.ClassLoader.loadClass(ClassLoader.java:501)
06-02 07:27:46.769: D/Command(5165): ID: 43, at
java.lang.ClassLoader.loadClass(ClassLoader.java:461)
06-02 07:27:46.769: D/Command(5165): ID: 43, ... 5 more
06-02 07:27:46.979: D/RootTools v3.4(5165): Command 43 finished.

My .classpath looks like:

path="com.android.ide.eclipse.adt.LIBRARIES"/>
path="com.android.ide.eclipse.adt.DEPENDENCIES"/>

My development system configuration is as follows: OS: Mac OS X 10.9.2
Eclipse: Kepler ADT: 22.3

and my target platform: Android: 4.1.1 Model: Sony Xperia E C1504 (rooted
using SRSRoot and the 'Gandalf' exploit) Firmware: Stock Kernel Xperia E
C1505_11.3.A.0.47 (supposed to work for C1504 as well)

Any ideas why Android can't find the
com.stericson.RootTools.containers.RootClass class?

Reply to this email directly or view it on GitHubhttps://github.com//issues/2
.

from roottools.

mysterymagination avatar mysterymagination commented on July 29, 2024

Hi Stephen,
I tried your steps above, but the result was the same-- ClassNotFoundException for com.stericson.RootTools.containers.RootClass
thanks,
ccj

from roottools.

mysterymagination avatar mysterymagination commented on July 29, 2024

could something going wrong during the construction of anbuild.dex cause this error? I've cleaned the project, removed the old anbuild.dex, rebuilt the project and then anbuild.dex, and re-installed the app but the ClassNotFoundException persists. How can I verify that the contents of anbuild.dex are correct?

from roottools.

mysterymagination avatar mysterymagination commented on July 29, 2024

sidenote: OSX creates .DS_Store files in any directory Finder has entered to keep track of metadata for the GUI; if an OSX user has entered $ANDROID_HOME/build-tools with Finder the .DS_Store file will screw up the execution of com.stericson.RootTools.containers.RootClass in the method getPathToDx() which assumes that only relevant SDK version directories will be present. Specifically, a NumberFormatException is thrown from Integer.parseInt("") because split(".") executed on .DS_Store returns the empty string to index 0 of the resultant String array. A workaround is for the user to ensure only relevant SDK version directories are present in build-tools, but some extra validation in RootClass might be handy. Thanks!

from roottools.

mysterymagination avatar mysterymagination commented on July 29, 2024

Can there be more than one @RootClass.candidate annotated class in an app using JavaCommandCapture? I looked at the dexdump of my anbuild.dex and I only saw instances of com.stericson.RootTools.containers.RootClass associated with one of my annotations, and not the one I was currently testing in the app which winds up throwing ClassNotFoundException for RootClass

from roottools.

Fusion avatar Fusion commented on July 29, 2024

Hi sorry for only realizing now that we had an issue thread open here.

You can use the candidate annotation with multiple classes and they should all end up in the dex file.

OK the parseInt() error is goofy I'll fix that (unless Stephen gets around to doing it first)

Note that the code you posted is about a private class. This is not a class that can ever be invoked by anyone.

from roottools.

Fusion avatar Fusion commented on July 29, 2024

BTW, beyond the wiki documentation, you can look into a real application:
https://github.com/Fusion/BambooGarden

from roottools.

mysterymagination avatar mysterymagination commented on July 29, 2024

In JavaCommandCapture's constructor parameters, what is the significance of the id argument?

from roottools.

mysterymagination avatar mysterymagination commented on July 29, 2024

I tried including the RootTools source code with my app build, but the result is the same as above. Below follows the unfiltered logcat history around when I use JavaCommandCapture:
[CODE]
03-06 15:39:53.969: D/RootTools v3.4(3261): roottools is logging
03-06 15:39:53.969: D/RootTools v3.4(3261): Starting Root Shell!
03-06 15:39:53.969: D/RootTools v3.4(3261): Starting shell: su
03-06 15:39:54.019: E/su(3275): sudb - Opening database
03-06 15:39:54.019: E/su(3275): sudb - Database opened
03-06 15:39:54.029: E/su(3275): sudb - Database closed
03-06 15:39:54.519: D/dalvikvm(3278): GC_CONCURRENT freed 103K, 80% free 513K/2560K, paused 0ms+3ms, total 11ms
03-06 15:39:54.529: W/LocaleUtil(3058): locale = en_US
03-06 15:39:54.529: W/LocaleUtil(3058): scriptSubtag = Latn
03-06 15:39:54.749: D/su(3275): 10140 com.mycompany.fmdelverrooted executing 0 /system/bin/sh using shell /system/bin/sh : sh
03-06 15:39:54.759: D/RootTools v3.4(3261): CommandHandler not created
03-06 15:39:54.779: D/RootTools v3.4(3261): Executing: dalvikvm -cp /data/data/com.mycompany.fmdelverrooted/files/anbuild.dex com.android.internal.util.WithFramework com.stericson.RootTools.containers.RootClass com.mycompany.fmdelver.core.DelverActivity.RootToolsTest
03-06 15:39:54.979: I/Adreno200-EGL(3261): <qeglDrvAPI_eglInitialize:299>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_JB_REL_RB1.04.01.01.06.043_msm7627a_JB_REL_RB1.2_Merge_release_AU (Merge)
03-06 15:39:54.979: I/Adreno200-EGL(3261): Build Date: 02/07/13 Thu
03-06 15:39:54.979: I/Adreno200-EGL(3261): Local Branch:
03-06 15:39:54.979: I/Adreno200-EGL(3261): Remote Branch: m/jb_rel_rb1.2
03-06 15:39:54.979: I/Adreno200-EGL(3261): Local Patches: NONE
03-06 15:39:54.979: I/Adreno200-EGL(3261): Reconstruct Branch: NOTHING
03-06 15:39:55.129: W/dalvikvm(3296): threadid=1: thread exiting with uncaught exception (group=0x40a09498)
03-06 15:39:55.149: D/Command(3261): ID: 1, java.lang.ClassNotFoundException: com.stericson.RootTools.containers.RootClass
03-06 15:39:55.149: D/Command(3261): ID: 1, at java.lang.Class.classForName(Native Method)
03-06 15:39:55.149: D/Command(3261): ID: 1, at java.lang.Class.forName(Class.java:217)
03-06 15:39:55.149: D/Command(3261): ID: 1, at java.lang.Class.forName(Class.java:172)
03-06 15:39:55.149: D/Command(3261): ID: 1, at com.android.internal.util.WithFramework.main(WithFramework.java:36)
03-06 15:39:55.149: D/Command(3261): ID: 1, at dalvik.system.NativeStart.main(Native Method)
03-06 15:39:55.149: D/Command(3261): ID: 1, Caused by: java.lang.NoClassDefFoundError: com/stericson/RootTools/containers/RootClass
03-06 15:39:55.149: D/Command(3261): ID: 1, ... 5 more
03-06 15:39:55.149: D/Command(3261): ID: 1, Caused by: java.lang.ClassNotFoundException: com.stericson.RootTools.containers.RootClass
03-06 15:39:55.149: D/Command(3261): ID: 1, at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
03-06 15:39:55.159: D/Command(3261): ID: 1, at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
03-06 15:39:55.159: D/Command(3261): ID: 1, at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
03-06 15:39:55.159: D/Command(3261): ID: 1, ... 5 more
03-06 15:39:55.159: D/dalvikvm(3296): GC_CONCURRENT freed 17K, 90% free 106K/1024K, paused 0ms+1ms, total 1ms
03-06 15:39:55.239: I/ActivityManager(393): Displayed com.mycompany.fmdelverrooted/com.mycompany.fmdelver.core.DelverActivity: +1s450ms
03-06 15:39:55.399: D/RootTools v3.4(3261): Command 1 finished.

[/CODE]

Interestingly, since I had to re-root my phone for unrelated reasons and SuperUser had to rewrite its white-list, I got to see that the SuperUser prompt for root permissions does rise for the user to accept or decline when my app tries to use JavaCommandCapture. After pressing 'accept' and seeing the ' has been granted superuser privs' toast the log above gets written.

from roottools.

mysterymagination avatar mysterymagination commented on July 29, 2024

and here is the dexdump content of my anbuild.dex file:
[CODE]
Processing './anbuild.dex'...
Opened './anbuild.dex', DEX version '035'
Class #0 -
Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$1;'
Access flags : 0x0000 ()
Superclass : 'Lcom/stericson/RootTools/execution/JavaCommandCapture;'
Interfaces -
Static fields -
Instance fields -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$1;)
name : 'this$0'
type : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
access : 0x1010 (FINAL SYNTHETIC)
Direct methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$1;)
name : ''
type : '(Lcom/mycompany/fmdelver/core/DelverActivity;IZLandroid/content/Context;[Ljava/lang/String;)V'
access : 0x10080 (VARARGS CONSTRUCTOR)
code -
registers : 6
ins : 6
outs : 5
insns size : 6 16-bit code units
catches : (none)
positions :
0x0000 line=1
0x0002 line=63
locals :
0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$1;
0x0000 - 0x0006 reg=2 $anonymous0 I
0x0000 - 0x0006 reg=3 $anonymous1 Z
0x0000 - 0x0006 reg=4 $anonymous2 Landroid/content/Context;
0x0000 - 0x0006 reg=5 $anonymous3 [Ljava/lang/String;
Virtual methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$1;)
name : 'commandOutput'
type : '(ILjava/lang/String;)V'
access : 0x0001 (PUBLIC)
code -
registers : 3
ins : 3
outs : 3
insns size : 4 16-bit code units
catches : (none)
positions :
0x0000 line=71
0x0003 line=73
locals :
0x0000 - 0x0004 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$1;
0x0000 - 0x0004 reg=1 id I
0x0000 - 0x0004 reg=2 line Ljava/lang/String;
source_file_idx : 33 (DelverActivity.java)

Class #1 -
Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$2;'
Access flags : 0x0000 ()
Superclass : 'Ljava/lang/Object;'
Interfaces -
#0 : 'Ljava/lang/Thread$UncaughtExceptionHandler;'
Static fields -
Instance fields -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$2;)
name : 'this$0'
type : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
access : 0x1010 (FINAL SYNTHETIC)
#1 : (in Lcom/mycompany/fmdelver/core/DelverActivity$2;)
name : 'val$subclass'
type : 'Ljava/lang/Thread$UncaughtExceptionHandler;'
access : 0x1012 (PRIVATE FINAL SYNTHETIC)
Direct methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$2;)
name : ''
type : '(Lcom/mycompany/fmdelver/core/DelverActivity;Ljava/lang/Thread$UncaughtExceptionHandler;)V'
access : 0x10000 (CONSTRUCTOR)
code -
registers : 3
ins : 3
outs : 1
insns size : 8 16-bit code units
catches : (none)
positions :
0x0000 line=1
0x0004 line=99
locals :
0x0000 - 0x0008 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$2;
Virtual methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$2;)
name : 'uncaughtException'
type : '(Ljava/lang/Thread;Ljava/lang/Throwable;)V'
access : 0x0001 (PUBLIC)
code -
registers : 6
ins : 3
outs : 3
insns size : 33 16-bit code units
catches : (none)
positions :
0x0000 line=102
0x0003 line=103
0x001b line=105
0x0020 line=106
locals :
0x0000 - 0x0021 reg=3 this Lcom/mycompany/fmdelver/core/DelverActivity$2;
0x0000 - 0x0021 reg=4 paramThread Ljava/lang/Thread;
0x0000 - 0x0021 reg=5 paramThrowable Ljava/lang/Throwable;
source_file_idx : 33 (DelverActivity.java)

Class #2 -
Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$3;'
Access flags : 0x0000 ()
Superclass : 'Ljava/lang/Object;'
Interfaces -
#0 : 'Landroid/view/View$OnClickListener;'
Static fields -
Instance fields -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$3;)
name : 'this$0'
type : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
access : 0x1010 (FINAL SYNTHETIC)
Direct methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$3;)
name : ''
type : '(Lcom/mycompany/fmdelver/core/DelverActivity;)V'
access : 0x10000 (CONSTRUCTOR)
code -
registers : 2
ins : 2
outs : 1
insns size : 6 16-bit code units
catches : (none)
positions :
0x0000 line=1
0x0002 line=159
locals :
0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$3;
Virtual methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$3;)
name : 'onClick'
type : '(Landroid/view/View;)V'
access : 0x0001 (PUBLIC)
code -
registers : 7
ins : 2
outs : 2
insns size : 50 16-bit code units
catches : 1
0x0000 - 0x0023
Ljava/io/IOException; -> 0x002d
positions :
0x0000 line=165
0x000c line=166
0x0023 line=172
0x002c line=180
0x002d line=167
0x002e line=169
locals :
0x000c - 0x0023 reg=0 assetsList [Ljava/lang/String;
0x002e - 0x0032 reg=1 e Ljava/io/IOException;
0x0000 - 0x0032 reg=5 this Lcom/mycompany/fmdelver/core/DelverActivity$3;
0x0000 - 0x0032 reg=6 arg0 Landroid/view/View;
source_file_idx : 33 (DelverActivity.java)

Class #3 -
Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$4;'
Access flags : 0x0000 ()
Superclass : 'Ljava/lang/Object;'
Interfaces -
#0 : 'Landroid/view/View$OnClickListener;'
Static fields -
Instance fields -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$4;)
name : 'this$0'
type : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
access : 0x1010 (FINAL SYNTHETIC)
Direct methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$4;)
name : ''
type : '(Lcom/mycompany/fmdelver/core/DelverActivity;)V'
access : 0x10000 (CONSTRUCTOR)
code -
registers : 2
ins : 2
outs : 1
insns size : 6 16-bit code units
catches : (none)
positions :
0x0000 line=1
0x0002 line=189
locals :
0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$4;
Virtual methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$4;)
name : 'onClick'
type : '(Landroid/view/View;)V'
access : 0x0001 (PUBLIC)
code -
registers : 2
ins : 2
outs : 0
insns size : 4 16-bit code units
catches : (none)
positions :
0x0000 line=195
0x0003 line=198
locals :
0x0000 - 0x0004 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$4;
0x0000 - 0x0004 reg=1 v Landroid/view/View;
source_file_idx : 33 (DelverActivity.java)

Class #4 -
Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$5;'
Access flags : 0x0000 ()
Superclass : 'Ljava/lang/Object;'
Interfaces -
#0 : 'Landroid/view/View$OnClickListener;'
Static fields -
Instance fields -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$5;)
name : 'this$0'
type : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
access : 0x1010 (FINAL SYNTHETIC)
Direct methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$5;)
name : ''
type : '(Lcom/mycompany/fmdelver/core/DelverActivity;)V'
access : 0x10000 (CONSTRUCTOR)
code -
registers : 2
ins : 2
outs : 1
insns size : 6 16-bit code units
catches : (none)
positions :
0x0000 line=1
0x0002 line=202
locals :
0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$5;
Virtual methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$5;)
name : 'onClick'
type : '(Landroid/view/View;)V'
access : 0x0001 (PUBLIC)
code -
registers : 2
ins : 2
outs : 0
insns size : 4 16-bit code units
catches : (none)
positions :
0x0000 line=207
0x0003 line=210
locals :
0x0000 - 0x0004 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$5;
0x0000 - 0x0004 reg=1 v Landroid/view/View;
source_file_idx : 33 (DelverActivity.java)

Class #5 -
Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$6;'
Access flags : 0x0000 ()
Superclass : 'Ljava/lang/Object;'
Interfaces -
#0 : 'Landroid/view/View$OnClickListener;'
Static fields -
Instance fields -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$6;)
name : 'this$0'
type : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
access : 0x1010 (FINAL SYNTHETIC)
Direct methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$6;)
name : ''
type : '(Lcom/mycompany/fmdelver/core/DelverActivity;)V'
access : 0x10000 (CONSTRUCTOR)
code -
registers : 2
ins : 2
outs : 1
insns size : 6 16-bit code units
catches : (none)
positions :
0x0000 line=1
0x0002 line=214
locals :
0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$6;
Virtual methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$6;)
name : 'onClick'
type : '(Landroid/view/View;)V'
access : 0x0001 (PUBLIC)
code -
registers : 4
ins : 2
outs : 2
insns size : 32 16-bit code units
catches : (none)
positions :
0x0000 line=219
0x000a line=220
0x000f line=226
0x0010 line=222
0x001a line=223
locals :
0x0000 - 0x0020 reg=2 this Lcom/mycompany/fmdelver/core/DelverActivity$6;
0x0000 - 0x0020 reg=3 v Landroid/view/View;
source_file_idx : 33 (DelverActivity.java)

Class #6 -
Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$7;'
Access flags : 0x0000 ()
Superclass : 'Ljava/lang/Object;'
Interfaces -
#0 : 'Landroid/view/View$OnClickListener;'
Static fields -
Instance fields -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$7;)
name : 'this$0'
type : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
access : 0x1010 (FINAL SYNTHETIC)
Direct methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$7;)
name : ''
type : '(Lcom/mycompany/fmdelver/core/DelverActivity;)V'
access : 0x10000 (CONSTRUCTOR)
code -
registers : 2
ins : 2
outs : 1
insns size : 6 16-bit code units
catches : (none)
positions :
0x0000 line=1
0x0002 line=230
locals :
0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$7;
Virtual methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$7;)
name : 'onClick'
type : '(Landroid/view/View;)V'
access : 0x0001 (PUBLIC)
code -
registers : 6
ins : 2
outs : 2
insns size : 45 16-bit code units
catches : (none)
positions :
0x0000 line=235
0x000a line=238
0x0014 line=239
0x0018 line=240
0x002c line=243
locals :
0x0018 - 0x002c reg=0 v4l2_result I
0x0000 - 0x002d reg=4 this Lcom/mycompany/fmdelver/core/DelverActivity$7;
0x0000 - 0x002d reg=5 v Landroid/view/View;
source_file_idx : 33 (DelverActivity.java)

Class #7 -
Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$8;'
Access flags : 0x0000 ()
Superclass : 'Ljava/lang/Object;'
Interfaces -
#0 : 'Landroid/view/View$OnClickListener;'
Static fields -
Instance fields -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$8;)
name : 'this$0'
type : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
access : 0x1010 (FINAL SYNTHETIC)
Direct methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$8;)
name : ''
type : '(Lcom/mycompany/fmdelver/core/DelverActivity;)V'
access : 0x10000 (CONSTRUCTOR)
code -
registers : 2
ins : 2
outs : 1
insns size : 6 16-bit code units
catches : (none)
positions :
0x0000 line=1
0x0002 line=281
locals :
0x0000 - 0x0006 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity$8;
Virtual methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$8;)
name : 'onClick'
type : '(Landroid/view/View;)V'
access : 0x0001 (PUBLIC)
code -
registers : 6
ins : 2
outs : 3
insns size : 29 16-bit code units
catches : (none)
positions :
0x0000 line=287
0x001c line=288
locals :
0x0000 - 0x001d reg=4 this Lcom/mycompany/fmdelver/core/DelverActivity$8;
0x0000 - 0x001d reg=5 v Landroid/view/View;
source_file_idx : 33 (DelverActivity.java)

Class #8 -
Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity$RootToolsTest;'
Access flags : 0x0000 ()
Superclass : 'Ljava/lang/Object;'
Interfaces -
Static fields -
Instance fields -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$RootToolsTest;)
name : 'this$0'
type : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
access : 0x1010 (FINAL SYNTHETIC)
Direct methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity$RootToolsTest;)
name : ''
type : '(Lcom/mycompany/fmdelver/core/DelverActivity;Lcom/stericson/RootTools/containers/RootClass$RootArgs;)V'
access : 0x10001 (PUBLIC CONSTRUCTOR)
code -
registers : 5
ins : 3
outs : 2
insns size : 13 16-bit code units
catches : (none)
positions :
0x0000 line=317
0x0005 line=318
0x000c line=319
locals :
0x0000 - 0x000d reg=2 this Lcom/mycompany/fmdelver/core/DelverActivity$RootToolsTest;
0x0000 - 0x000d reg=4 args Lcom/stericson/RootTools/containers/RootClass$RootArgs;
Virtual methods -
source_file_idx : 33 (DelverActivity.java)

Class #9 -
Class descriptor : 'Lcom/mycompany/fmdelver/core/DelverActivity;'
Access flags : 0x0001 (PUBLIC)
Superclass : 'Landroid/app/Activity;'
Interfaces -
Static fields -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'ACTION_FM'
type : 'Ljava/lang/String;'
access : 0x0019 (PUBLIC STATIC FINAL)
#1 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'ERR_HW'
type : 'I'
access : 0x0019 (PUBLIC STATIC FINAL)
#2 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'ERR_LIB_INIT'
type : 'I'
access : 0x0019 (PUBLIC STATIC FINAL)
#3 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'ERR_OK'
type : 'I'
access : 0x0019 (PUBLIC STATIC FINAL)
#4 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'PLATFORM'
type : 'Ljava/lang/String;'
access : 0x0019 (PUBLIC STATIC FINAL)
#5 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'TAG'
type : 'Ljava/lang/String;'
access : 0x0009 (PUBLIC STATIC)
Instance fields -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'SUPERUSER_REQUEST'
type : 'I'
access : 0x0012 (PRIVATE FINAL)
#1 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'delverLib'
type : 'Lcom/mycompany/fmdelver/nativeinterface/NativeFMDelverLib;'
access : 0x0002 (PRIVATE)
#2 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'errorCode'
type : 'I'
access : 0x0002 (PRIVATE)
#3 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'libActive'
type : 'I'
access : 0x0002 (PRIVATE)
#4 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'mv_oFMReceiver'
type : 'Lcom/mycompany/fmdelver/core/FMReceiver;'
access : 0x0002 (PRIVATE)
#5 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'mv_oRootControls'
type : 'Lcom/mycompany/fmdelver/core/RootControls;'
access : 0x0002 (PRIVATE)
Direct methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : ''
type : '()V'
access : 0x10008 (STATIC CONSTRUCTOR)
code -
registers : 1
ins : 0
outs : 0
insns size : 5 16-bit code units
catches : (none)
positions :
0x0000 line=34
0x0004 line=49
locals :
#1 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : ''
type : '()V'
access : 0x10001 (PUBLIC CONSTRUCTOR)
code -
registers : 3
ins : 1
outs : 1
insns size : 14 16-bit code units
catches : (none)
positions :
0x0001 line=32
0x0004 line=40
0x0009 line=43
0x000b line=44
0x000d line=32
locals :
0x0000 - 0x000e reg=2 this Lcom/mycompany/fmdelver/core/DelverActivity;
#2 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'access$0'
type : '(Lcom/mycompany/fmdelver/core/DelverActivity;)Lcom/mycompany/fmdelver/core/RootControls;'
access : 0x1008 (STATIC SYNTHETIC)
code -
registers : 2
ins : 1
outs : 0
insns size : 3 16-bit code units
catches : (none)
positions :
0x0000 line=46
locals :
#3 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'access$1'
type : '(Lcom/mycompany/fmdelver/core/DelverActivity;)I'
access : 0x1008 (STATIC SYNTHETIC)
code -
registers : 2
ins : 1
outs : 0
insns size : 3 16-bit code units
catches : (none)
positions :
0x0000 line=44
locals :
Virtual methods -
#0 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'harnessHTCOneFMRadio'
type : '()V'
access : 0x0001 (PUBLIC)
code -
registers : 6
ins : 1
outs : 2
insns size : 62 16-bit code units
catches : (none)
positions :
0x0000 line=468
0x0002 line=469
0x000a line=470
0x000c line=472
0x0025 line=473
0x0028 line=525
0x0029 line=476
locals :
0x000a - 0x003e reg=0 LaunchIntent Landroid/content/Intent;
0x0002 - 0x003e reg=1 packageString Ljava/lang/String;
0x0000 - 0x003e reg=5 this Lcom/mycompany/fmdelver/core/DelverActivity;
#1 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'harnessXperiaeFMRadio'
type : '()V'
access : 0x0001 (PUBLIC)
code -
registers : 6
ins : 1
outs : 2
insns size : 62 16-bit code units
catches : (none)
positions :
0x0000 line=302
0x0002 line=303
0x000a line=304
0x000c line=306
0x0025 line=307
0x0028 line=312
0x0029 line=310
locals :
0x000a - 0x003e reg=0 LaunchIntent Landroid/content/Intent;
0x0002 - 0x003e reg=1 packageString Ljava/lang/String;
0x0000 - 0x003e reg=5 this Lcom/mycompany/fmdelver/core/DelverActivity;
#2 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'onActivityResult'
type : '(IILandroid/content/Intent;)V'
access : 0x0001 (PUBLIC)
code -
registers : 4
ins : 4
outs : 0
insns size : 1 16-bit code units
catches : (none)
positions :
0x0000 line=254
locals :
0x0000 - 0x0001 reg=0 this Lcom/mycompany/fmdelver/core/DelverActivity;
0x0000 - 0x0001 reg=1 requestCode I
0x0000 - 0x0001 reg=2 resultCode I
0x0000 - 0x0001 reg=3 data Landroid/content/Intent;
#3 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'onCreate'
type : '(Landroid/os/Bundle;)V'
access : 0x0004 (PROTECTED)
code -
registers : 11
ins : 2
outs : 6
insns size : 77 16-bit code units
catches : 1
0x000f - 0x0027
Ljava/lang/Exception; -> 0x0048
positions :
0x0002 line=54
0x0005 line=56
0x0007 line=57
0x000c line=58
0x000e line=62
0x0013 line=63
0x0015 line=64
0x0016 line=65
0x0017 line=66
0x001b line=67
0x001d line=63
0x0024 line=75
0x0027 line=98
0x002f line=99
0x0037 line=134
0x003d line=135
0x0044 line=139
0x0047 line=141
0x0048 line=76
0x0049 line=77
locals :
0x0024 - 0x0027 reg=0 cmd Lcom/stericson/RootTools/execution/JavaCommandCapture;
0x0013 - 0x0027 reg=7 shell Lcom/stericson/RootTools/execution/Shell;
0x002f - 0x0048 reg=8 subclass Ljava/lang/Thread$UncaughtExceptionHandler;
0x0049 - 0x004d reg=6 e Ljava/lang/Exception;
0x0000 - 0x004d reg=9 this Lcom/mycompany/fmdelver/core/DelverActivity;
0x0000 - 0x004d reg=10 savedInstanceState Landroid/os/Bundle;
#4 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'onCreateOptionsMenu'
type : '(Landroid/view/Menu;)Z'
access : 0x0001 (PUBLIC)
code -
registers : 4
ins : 2
outs : 3
insns size : 11 16-bit code units
catches : (none)
positions :
0x0000 line=153
0x0009 line=154
locals :
0x0000 - 0x000b reg=2 this Lcom/mycompany/fmdelver/core/DelverActivity;
0x0000 - 0x000b reg=3 menu Landroid/view/Menu;
#5 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'reqSU'
type : '()V'
access : 0x0001 (PUBLIC)
code -
registers : 4
ins : 1
outs : 3
insns size : 28 16-bit code units
catches : (none)
positions :
0x0000 line=260
0x0007 line=263
0x000e line=266
0x0015 line=269
0x001b line=275
locals :
0x0007 - 0x001c reg=0 intent Landroid/content/Intent;
0x0000 - 0x001c reg=3 this Lcom/mycompany/fmdelver/core/DelverActivity;
#6 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'setupUIRooted'
type : '()V'
access : 0x0001 (PUBLIC)
code -
registers : 3
ins : 1
outs : 2
insns size : 18 16-bit code units
catches : (none)
positions :
0x0000 line=158
0x0009 line=159
0x0011 line=183
locals :
0x0009 - 0x0012 reg=0 bigRedB Landroid/widget/Button;
0x0000 - 0x0012 reg=2 this Lcom/mycompany/fmdelver/core/DelverActivity;
#7 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'setupUIWithFMRadio'
type : '()V'
access : 0x0001 (PUBLIC)
code -
registers : 7
ins : 1
outs : 2
insns size : 82 16-bit code units
catches : (none)
positions :
0x0000 line=186
0x0008 line=187
0x000d line=188
0x0016 line=189
0x001e line=201
0x0027 line=202
0x002f line=213
0x0038 line=214
0x0040 line=229
0x0049 line=230
0x0051 line=247
locals :
0x0027 - 0x0052 reg=0 closeRxB Landroid/widget/Button;
0x0016 - 0x0052 reg=1 createRxB Landroid/widget/Button;
0x0038 - 0x0052 reg=2 harnessFMRadioB Landroid/widget/Button;
0x0008 - 0x0052 reg=3 introTV Landroid/widget/TextView;
0x0049 - 0x0052 reg=4 testV4L2FMRadioB Landroid/widget/Button;
0x0000 - 0x0052 reg=6 this Lcom/mycompany/fmdelver/core/DelverActivity;
#8 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'setupUIWithoutRadio'
type : '()V'
access : 0x0001 (PUBLIC)
code -
registers : 4
ins : 1
outs : 2
insns size : 31 16-bit code units
catches : (none)
positions :
0x0000 line=278
0x0008 line=279
0x000d line=280
0x0016 line=281
0x001e line=291
locals :
0x0016 - 0x001f reg=0 createRxB Landroid/widget/Button;
0x0008 - 0x001f reg=1 introTV Landroid/widget/TextView;
0x0000 - 0x001f reg=3 this Lcom/mycompany/fmdelver/core/DelverActivity;
#9 : (in Lcom/mycompany/fmdelver/core/DelverActivity;)
name : 'testMagicIntent'
type : '(I)V'
access : 0x0001 (PUBLIC)
code -
registers : 6
ins : 2
outs : 3
insns size : 40 16-bit code units
catches : (none)
positions :
0x0000 line=144
0x0007 line=145
0x000c line=146
0x0020 line=147
0x0027 line=148
locals :
0x0007 - 0x0028 reg=0 intent Landroid/content/Intent;
0x0000 - 0x0028 reg=4 this Lcom/mycompany/fmdelver/core/DelverActivity;
0x0000 - 0x0028 reg=5 action I
source_file_idx : 33 (DelverActivity.java)

Class #10 -
Class descriptor : 'Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1;'
Access flags : 0x0000 ()
Superclass : 'Ljava/lang/Object;'
Interfaces -
#0 : 'Ljava/io/FilenameFilter;'
Static fields -
Instance fields -
#0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1;)
name : 'this$1'
type : 'Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;'
access : 0x1010 (FINAL SYNTHETIC)
#1 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1;)
name : 'val$fileNamePrefix'
type : 'Ljava/lang/String;'
access : 0x1012 (PRIVATE FINAL SYNTHETIC)
Direct methods -
#0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1;)
name : ''
type : '(Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;Ljava/lang/String;)V'
access : 0x10000 (CONSTRUCTOR)
code -
registers : 3
ins : 3
outs : 1
insns size : 8 16-bit code units
catches : (none)
positions :
0x0000 line=1
0x0004 line=173
locals :
0x0000 - 0x0008 reg=0 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1;
Virtual methods -
#0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1;)
name : 'accept'
type : '(Ljava/io/File;Ljava/lang/String;)Z'
access : 0x0001 (PUBLIC)
code -
registers : 4
ins : 3
outs : 2
insns size : 7 16-bit code units
catches : (none)
positions :
0x0000 line=176
locals :
0x0000 - 0x0007 reg=1 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$1;
0x0000 - 0x0007 reg=2 dir Ljava/io/File;
0x0000 - 0x0007 reg=3 filename Ljava/lang/String;
source_file_idx : 163 (RootClass.java)

Class #11 -
Class descriptor : 'Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$2;'
Access flags : 0x0000 ()
Superclass : 'Ljava/lang/Object;'
Interfaces -
#0 : 'Ljava/io/FileFilter;'
Static fields -
Instance fields -
#0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$2;)
name : 'this$1'
type : 'Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;'
access : 0x1010 (FINAL SYNTHETIC)
Direct methods -
#0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$2;)
name : ''
type : '(Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)V'
access : 0x10000 (CONSTRUCTOR)
code -
registers : 2
ins : 2
outs : 1
insns size : 6 16-bit code units
catches : (none)
positions :
0x0000 line=1
0x0002 line=260
locals :
0x0000 - 0x0006 reg=0 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$2;
Virtual methods -
#0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$2;)
name : 'accept'
type : '(Ljava/io/File;)Z'
access : 0x0001 (PUBLIC)
code -
registers : 3
ins : 2
outs : 1
insns size : 5 16-bit code units
catches : (none)
positions :
0x0000 line=263
locals :
0x0000 - 0x0005 reg=1 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder$2;
0x0000 - 0x0005 reg=2 pathname Ljava/io/File;
source_file_idx : 163 (RootClass.java)

Class #12 -
Class descriptor : 'Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;'
Access flags : 0x0001 (PUBLIC)
Superclass : 'Ljava/lang/Object;'
Interfaces -
Static fields -
#0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
name : '$SWITCH_TABLE$com$stericson$RootTools$containers$RootClass$READ_STATE'
type : '[I'
access : 0x100a (PRIVATE STATIC SYNTHETIC)
Instance fields -
#0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
name : 'AVOIDDIRPATH'
type : 'Ljava/lang/String;'
access : 0x0012 (PRIVATE FINAL)
#1 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
name : 'classFiles'
type : 'Ljava/util/List;'
access : 0x0002 (PRIVATE)
Direct methods -
#0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
name : '$SWITCH_TABLE$com$stericson$RootTools$containers$RootClass$READ_STATE'
type : '()[I'
access : 0x1008 (STATIC SYNTHETIC)
code -
registers : 3
ins : 0
outs : 1
insns size : 37 16-bit code units
catches : 2
0x000c - 0x0015
Ljava/lang/NoSuchFieldError; -> 0x0023
0x0015 - 0x001e
Ljava/lang/NoSuchFieldError; -> 0x0021
positions :
0x0000 line=60
locals :
#1 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
name : ''
type : '()V'
access : 0x10001 (PUBLIC CONSTRUCTOR)
code -
registers : 18
ins : 1
outs : 3
insns size : 766 16-bit code units
catches : 2
0x0203 - 0x020a
Ljava/io/IOException; -> 0x02fb
Ljava/lang/InterruptedException; -> 0x02f8
0x0243 - 0x024a
Ljava/io/IOException; -> 0x02f5
Ljava/lang/InterruptedException; -> 0x02f2
positions :
0x0000 line=65
0x0003 line=62
0x0024 line=66
0x002b line=67
0x0034 line=68
0x0044 line=69
0x004b line=70
0x004f line=71
0x0051 line=73
0x005e line=74
0x006a line=75
0x0076 line=76
0x0082 line=77
0x0088 line=73
0x008c line=78
0x0099 line=79
0x00a5 line=80
0x00b1 line=81
0x00bd line=82
0x00c3 line=78
0x00c7 line=83
0x00d4 line=84
0x00e0 line=85
0x00ec line=86
0x00f8 line=87
0x00fe line=83
0x0102 line=88
0x010f line=89
0x011b line=90
0x0127 line=91
0x0133 line=92
0x0139 line=88
0x013d line=93
0x014a line=94
0x0156 line=95
0x0162 line=96
0x016e line=97
0x0174 line=93
0x0178 line=99
0x018c line=100
0x018e line=101
0x0190 line=102
0x01c7 line=101
0x01ca line=104
0x01d8 line=107
0x01dc line=108
0x01e6 line=109
0x01ed line=111
0x01f5 line=109
0x01fb line=129
0x0200 line=130
0x0203 line=132
0x020a line=135
0x0211 line=136
0x0213 line=137
0x0217 line=138
0x0221 line=139
0x0228 line=140
0x0238 line=139
0x023e line=151
0x0243 line=153
0x024a line=156
0x0251 line=157
0x0252 line=99
0x0255 line=104
0x025b line=105
0x0273 line=115
0x0278 line=116
0x027d line=117
0x0282 line=118
0x0287 line=119
0x028a line=120
0x028d line=121
0x0290 line=122
0x0293 line=123
0x0296 line=124
0x02a4 line=127
0x02b2 line=124
0x02b8 line=125
0x02c0 line=144
0x02c4 line=145
0x02cb line=146
0x02d0 line=147
0x02d5 line=148
0x02f0 line=144
0x02f2 line=154
0x02f8 line=133
locals :
0x01ca - 0x01fb reg=13 sb Ljava/lang/StringBuilder;
0x01fb - 0x0216 reg=3 cmd [Ljava/lang/String;
0x023e - 0x024a reg=3 cmd [Ljava/lang/String;
0x0243 - 0x024a reg=4 dexBuilder Ljava/lang/ProcessBuilder;
0x0200 - 0x024a reg=6 jarBuilder Ljava/lang/ProcessBuilder;
0x018c - 0x024a reg=7 onWindows Z
0x008c - 0x024a reg=8 rc1 Ljava/lang/String;
0x00c7 - 0x024a reg=9 rc2 Ljava/lang/String;
0x0102 - 0x024a reg=10 rc3 Ljava/lang/String;
0x013d - 0x024a reg=11 rc4 Ljava/lang/String;
0x0178 - 0x024a reg=12 rc5 Ljava/lang/String;
0x025b - 0x0273 reg=5 file Ljava/io/File;
0x0255 - 0x0273 reg=13 sb Ljava/lang/StringBuilder;
0x02b0 - 0x02b2 reg=3 cmd [Ljava/lang/String;
0x0278 - 0x02c0 reg=1 al Ljava/util/ArrayList; Ljava/util/ArrayList<Ljava/lang/String;>;
0x02b8 - 0x02c0 reg=5 file Ljava/io/File;
0x02c0 - 0x02c3 reg=3 cmd [Ljava/lang/String;
0x02f2 - 0x02f8 reg=4 dexBuilder Ljava/lang/ProcessBuilder;
0x004f - 0x02fe reg=2 builtPath Ljava/io/File;
0x02f0 - 0x02fe reg=3 cmd [Ljava/lang/String;
0x02c0 - 0x02fe reg=6 jarBuilder Ljava/lang/ProcessBuilder;
0x0255 - 0x02fe reg=7 onWindows Z
0x0252 - 0x02fe reg=8 rc1 Ljava/lang/String;
0x0252 - 0x02fe reg=9 rc2 Ljava/lang/String;
0x0252 - 0x02fe reg=10 rc3 Ljava/lang/String;
0x0252 - 0x02fe reg=11 rc4 Ljava/lang/String;
0x0252 - 0x02fe reg=12 rc5 Ljava/lang/String;
0x0000 - 0x02fe reg=17 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;
Virtual methods -
#0 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
name : 'getBuiltPath'
type : '()Ljava/io/File;'
access : 0x0004 (PROTECTED)
code -
registers : 7
ins : 1
outs : 2
insns size : 124 16-bit code units
catches : (none)
positions :
0x0000 line=256
0x0001 line=258
0x001d line=259
0x0023 line=260
0x002c line=266
0x002f line=267
0x0056 line=270
0x0058 line=271
0x0074 line=272
0x007a line=273
0x007b line=277
locals :
0x0001 - 0x0031 reg=2 foundPath Ljava/io/File;
0x002c - 0x0056 reg=0 children [Ljava/io/File;
0x0074 - 0x007b reg=1 eclipsePath Ljava/io/File;
0x0056 - 0x007c reg=2 foundPath Ljava/io/File;
0x001d - 0x007c reg=3 ideaPath Ljava/io/File;
0x0000 - 0x007c reg=6 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;
#1 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
name : 'getPathToDx'
type : '()Ljava/lang/String;'
access : 0x0004 (PROTECTED)
code -
registers : 16
ins : 1
outs : 2
insns size : 159 16-bit code units
catches : (none)
positions :
0x0003 line=224
0x0009 line=225
0x000b line=226
0x0013 line=228
0x0014 line=229
0x0036 line=230
0x0037 line=231
0x003b line=249
0x003d line=250
0x0045 line=231
0x0047 line=233
0x0051 line=234
0x0059 line=235
0x005c line=236
0x0065 line=237
0x0068 line=238
0x006f line=241
0x0071 line=242
0x008e line=243
0x0099 line=244
0x009a line=245
0x009b line=231
0x009e line=252
locals :
0x008e - 0x009b reg=7 tentativePath Ljava/lang/String;
0x0047 - 0x009e reg=2 file Ljava/io/File;
0x0059 - 0x009e reg=5 sdkVersion I
0x0051 - 0x009e reg=6 sdkVersionBits [Ljava/lang/String;
0x0009 - 0x009f reg=0 androidHome Ljava/lang/String;
0x0014 - 0x009f reg=1 dxPath Ljava/lang/String;
0x0036 - 0x009f reg=3 files [Ljava/io/File;
0x0037 - 0x009f reg=4 recentSdkVersion I
0x0000 - 0x009f reg=15 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;
#2 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
name : 'hasClassAnnotation'
type : '(Ljava/io/File;)Z'
access : 0x0004 (PROTECTED)
code -
registers : 12
ins : 2
outs : 2
insns size : 134 16-bit code units
catches : 1
0x0009 - 0x0073
Ljava/io/FileNotFoundException; -> 0x0074
Ljava/io/IOException; -> 0x0079
positions :
0x0001 line=190
0x0003 line=191
0x0009 line=193
0x0013 line=195
0x0019 line=220
0x001a line=196
0x0028 line=198
0x0031 line=199
0x0033 line=200
0x0034 line=202
0x0038 line=203
0x003e line=204
0x0057 line=205
0x0059 line=208
0x0062 line=209
0x006e line=208
0x0071 line=210
0x0074 line=215
0x0075 line=216
0x0079 line=217
0x007a line=218
0x007e line=196
locals :
0x0017 - 0x0019 reg=1 line Ljava/lang/String;
0x0013 - 0x0019 reg=5 reader Ljava/io/BufferedReader;
0x001a - 0x0074 reg=1 line Ljava/lang/String;
0x0038 - 0x0074 reg=2 m Ljava/util/regex/Matcher;
0x001a - 0x0074 reg=5 reader Ljava/io/BufferedReader;
0x0075 - 0x0079 reg=0 e Ljava/io/FileNotFoundException;
0x007a - 0x0086 reg=0 e Ljava/io/IOException;
0x0009 - 0x0086 reg=3 p Ljava/util/regex/Pattern;
0x0003 - 0x0086 reg=4 readState Lcom/stericson/RootTools/containers/RootClass$READ_STATE;
0x0000 - 0x0086 reg=10 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;
0x0000 - 0x0086 reg=11 file Ljava/io/File;
#3 : (in Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;)
name : 'lookup'
type : '(Ljava/io/File;Ljava/util/List;)V'
access : 0x0004 (PROTECTED)
code -
registers : 18
ins : 3
outs : 3
insns size : 173 16-bit code units
catches : (none)
positions :
0x0000 line=160
0x000c line=161
0x0010 line=162
0x0015 line=187
0x0016 line=162
0x0018 line=163
0x001e line=164
0x002b line=165
0x0030 line=162
0x0034 line=169
0x0040 line=170
0x0046 line=171
0x0052 line=172
0x0076 line=173
0x007f line=179
0x0085 line=180
0x00aa line=179
locals :
0x007f - 0x00ad reg=1 classAndInnerClassFiles [Ljava/io/File;
0x0076 - 0x00ad reg=2 compiledPath Ljava/io/File;
0x000c - 0x00ad reg=3 desourcedPath Ljava/lang/String;
0x0018 - 0x00ad reg=4 file Ljava/io/File;
0x0052 - 0x00ad reg=5 fileNamePrefix Ljava/lang/String;
0x0010 - 0x00ad reg=6 files [Ljava/io/File;
0x0085 - 0x00ad reg=7 matchingFile Ljava/io/File;
0x0000 - 0x00ad reg=15 this Lcom/stericson/RootTools/containers/RootClass$AnnotationsFinder;
0x0000 - 0x00ad reg=16 path Ljava/io/File;
0x0000 - 0x00ad reg=17 fileList Ljava/util/List; Ljava/util/List<Ljava/io/File;>;
source_file_idx : 163 (RootClass.java)

Class #13 -
Class descriptor : 'Lcom/stericson/RootTools/containers/RootClass$RootArgs;'
Access flags : 0x0001 (PUBLIC)
Superclass : 'Ljava/lang/Object;'
Interfaces -
Static fields -
Instance fields -
#0 : (in Lcom/stericson/RootTools/containers/RootClass$RootArgs;)
name : 'args'
type : '[Ljava/lang/String;'
access : 0x0001 (PUBLIC)
#1 : (in Lcom/stericson/RootTools/containers/RootClass$RootArgs;)
name : 'this$0'
type : 'Lcom/stericson/RootTools/containers/RootClass;'
access : 0x1010 (FINAL SYNTHETIC)
Direct methods -
#0 : (in Lcom/stericson/RootTools/containers/RootClass$RootArgs;)
name : ''
type : '(Lcom/stericson/RootTools/containers/RootClass;)V'
access : 0x10001 (PUBLIC CONSTRUCTOR)
code -
registers : 2
ins : 2
outs : 1
insns size : 6 16-bit code units
catches : (none)
positions :
0x0000 line=46
locals :
0x0000 - 0x0006 reg=0 this Lcom/stericson/RootTools/containers/RootClass$RootArgs;
Virtual methods -
source_file_idx : 163 (RootClass.java)

Class #14 -
Class descriptor : 'Lcom/stericson/RootTools/containers/RootClass;'
Access flags : 0x0001 (PUBLIC)
Superclass : 'Ljava/lang/Object;'
Interfaces -
Static fields -
#0 : (in Lcom/stericson/RootTools/containers/RootClass;)
name : 'PATH_TO_DX'
type : 'Ljava/lang/String;'
access : 0x0008 (STATIC)
Instance fields -
Direct methods -
#0 : (in Lcom/stericson/RootTools/containers/RootClass;)
name : ''
type : '()V'
access : 0x10008 (STATIC CONSTRUCTOR)
code -
registers : 1
ins : 0
outs : 0
insns size : 5 16-bit code units
catches : (none)
positions :
0x0000 line=24
locals :
#1 : (in Lcom/stericson/RootTools/containers/RootClass;)
name : ''
type : '([Ljava/lang/String;)V'
access : 0x10001 (PUBLIC CONSTRUCTOR)
code -
registers : 10
ins : 2
outs : 5
insns size : 49 16-bit code units
catches : (none)
positions :
0x0002 line=27
0x0005 line=35
0x0007 line=36
0x000c line=37
0x0013 line=38
0x001b line=39
0x001f line=40
0x0029 line=41
0x0030 line=42
locals :
0x000c - 0x0031 reg=0 actualArgs Lcom/stericson/RootTools/containers/RootClass$RootArgs;
0x0029 - 0x0031 reg=1 classConstructor Ljava/lang/reflect/Constructor; Ljava/lang/reflect/Constructor<>;
0x001f - 0x0031 reg=2 classHandler Ljava/lang/Class; Ljava/lang/Class<
>;
0x0007 - 0x0031 reg=3 className Ljava/lang/String;
0x0000 - 0x0031 reg=8 this Lcom/stericson/RootTools/containers/RootClass;
0x0000 - 0x0031 reg=9 args [Ljava/lang/String;
#2 : (in Lcom/stericson/RootTools/containers/RootClass;)
name : 'displayError'
type : '(Ljava/lang/Exception;)V'
access : 0x0008 (STATIC)
code -
registers : 4
ins : 1
outs : 2
insns size : 34 16-bit code units
catches : (none)
positions :
0x0000 line=53
0x001e line=54
0x0021 line=55
locals :
0x0000 - 0x0022 reg=3 e Ljava/lang/Exception;
#3 : (in Lcom/stericson/RootTools/containers/RootClass;)
name : 'main'
type : '([Ljava/lang/String;)V'
access : 0x0009 (PUBLIC STATIC)
code -
registers : 3
ins : 1
outs : 2
insns size : 20 16-bit code units
catches : 1
0x0000 - 0x000e
Ljava/lang/Exception; -> 0x000f
positions :
0x0000 line=285
0x0003 line=286
0x0008 line=294
0x0009 line=289
0x000f line=291
0x0010 line=292
locals :
0x0010 - 0x0014 reg=0 e Ljava/lang/Exception;
0x0000 - 0x0014 reg=2 args [Ljava/lang/String;
Virtual methods -
source_file_idx : 163 (RootClass.java)

Class #15 -
Class descriptor : 'Lcom/stericson/RootToolsTests/NativeJavaClass;'
Access flags : 0x0001 (PUBLIC)
Superclass : 'Ljava/lang/Object;'
Interfaces -
Static fields -
Instance fields -
Direct methods -
#0 : (in Lcom/stericson/RootToolsTests/NativeJavaClass;)
name : ''
type : '(Lcom/stericson/RootTools/containers/RootClass$RootArgs;)V'
access : 0x10001 (PUBLIC CONSTRUCTOR)
code -
registers : 15
ins : 2
outs : 2
insns size : 128 16-bit code units
catches : 1
0x0041 - 0x005a
Ljava/io/IOException; -> 0x0074
positions :
0x0000 line=13
0x0003 line=14
0x000a line=15
0x000c line=16
0x0011 line=17
0x0015 line=18
0x0017 line=19
0x001e line=20
0x0022 line=23
0x0029 line=24
0x0041 line=26
0x0046 line=27
0x004b line=28
0x0050 line=29
0x0053 line=30
0x005a line=37
0x005b line=20
0x005d line=21
0x0071 line=20
0x0074 line=31
0x0075 line=32
0x007c line=33
locals :
0x0041 - 0x005a reg=3 f2 Ljava/io/File;
0x0046 - 0x005a reg=4 filewriter Ljava/io/FileWriter;
0x004b - 0x005a reg=6 out Ljava/io/BufferedWriter;
0x005d - 0x0074 reg=0 af Ljava/lang/String;
0x0075 - 0x0080 reg=1 e Ljava/io/IOException;
0x0011 - 0x0080 reg=2 f Ljava/io/File;
0x0074 - 0x0080 reg=3 f2 Ljava/io/File;
0x0015 - 0x0080 reg=5 fl [Ljava/lang/String;
0x000c - 0x0080 reg=7 p Ljava/lang/String;
0x0000 - 0x0080 reg=13 this Lcom/stericson/RootToolsTests/NativeJavaClass;
0x0000 - 0x0080 reg=14 args Lcom/stericson/RootTools/containers/RootClass$RootArgs;
Virtual methods -
source_file_idx : 154 (NativeJavaClass.java)
[/CODE]

DelverActivity.RootToolsTest should be the only RootClass.Candidate annotated class in my source. NativeJavaClass is from the RootTools test package.

Any ideas would be much appreciated, thanks!

from roottools.

TheNetStriker avatar TheNetStriker commented on July 29, 2024

I also get this error on my Sony Xperia Z2 using the latest Cyanogenmod 11. My Root class is very simple:

package com.example.myapp;

import com.stericson.RootTools.containers.RootClass;

@RootClass.Candidate
public class RootTest {
public static void main (String [] args) {
System.out.println("Test");
}
}

When I execute this class I also get the error message. Here is my log output:

06-25 11:38:17.167: D/RootTools v3.4(22124): Starting Root Shell!
06-25 11:38:17.167: D/RootTools v3.4(22124): Starting shell: su
06-25 11:38:17.177: D/su(22150): su invoked.
06-25 11:38:17.177: D/su(22150): starting daemon client 10214 10214
06-25 11:38:17.177: D/su(22153): remote pid: 22150
06-25 11:38:17.177: D/su(22153): remote pts_slave:
06-25 11:38:17.177: D/su(22153): waiting for child exit
06-25 11:38:17.177: D/su(22155): su invoked.
06-25 11:38:17.187: D/su(22155): db allowed
06-25 11:38:17.187: D/su(22155): 10214 /system/xbin/su executing 0 /system/bin/sh using binary /system/bin/sh : sh
06-25 11:38:17.187: D/RootTools v3.4(22124): CommandHandler not created
06-25 11:38:17.197: D/RootTools v3.4(22124): Executing: dalvikvm -cp /data/data/com.example.myapp/files/anbuild.dex com.android.internal.util.WithFramework com.stericson.RootTools.containers.RootClass com.example.myapp.RootTest
06-25 11:38:17.197: D/RootTools v3.4(22124): Checking for Root access
06-25 11:38:17.207: D/RootTools v3.4(22124): CommandHandler not created
06-25 11:38:17.207: D/RootTools v3.4(22124): Using Existing Root Shell!
06-25 11:38:17.207: D/RootTools v3.4(22124): Command is in position 1 currently executing command at position 1
06-25 11:38:17.217: D/RootTools v3.4(22124): Executing: id
06-25 11:38:17.237: D/dalvikvm(22166): Trying to load lib libjavacore.so 0x0
06-25 11:38:17.247: D/dalvikvm(22166): Added shared lib libjavacore.so 0x0
06-25 11:38:17.257: D/dalvikvm(22166): Trying to load lib libnativehelper.so 0x0
06-25 11:38:17.257: D/dalvikvm(22166): Added shared lib libnativehelper.so 0x0
06-25 11:38:17.257: D/dalvikvm(22166): No JNI_OnLoad found in libnativehelper.so 0x0, skipping init
06-25 11:38:17.287: W/dalvikvm(22166): threadid=1: thread exiting with uncaught exception (group=0xb5e05ce0)
06-25 11:38:17.287: D/Command(22124): ID: 43, java.lang.ClassNotFoundException: com.stericson.RootTools.containers.RootClass
06-25 11:38:17.287: D/Command(22124): ID: 43, at java.lang.Class.classForName(Native Method)
06-25 11:38:17.287: D/Command(22124): ID: 43, at java.lang.Class.forName(Class.java:251)
06-25 11:38:17.287: D/Command(22124): ID: 43, at java.lang.Class.forName(Class.java:216)
06-25 11:38:17.287: D/Command(22124): ID: 43, at com.android.internal.util.WithFramework.main(WithFramework.java:36)
06-25 11:38:17.287: D/Command(22124): ID: 43, at dalvik.system.NativeStart.main(Native Method)
06-25 11:38:17.287: D/Command(22124): ID: 43, Caused by: java.lang.NoClassDefFoundError: com/stericson/RootTools/containers/RootClass
06-25 11:38:17.287: D/Command(22124): ID: 43, ... 5 more
06-25 11:38:17.287: D/Command(22124): ID: 43, Caused by: java.lang.ClassNotFoundException: Didn't find class "com.stericson.RootTools.containers.RootClass" on path: DexPathList[[dex file "dalvik.system.DexFile@b5e0f7b8"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
06-25 11:38:17.287: D/Command(22124): ID: 43, at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
06-25 11:38:17.287: D/Command(22124): ID: 43, at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
06-25 11:38:17.287: D/Command(22124): ID: 43, at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
06-25 11:38:17.287: D/Command(22124): ID: 43, ... 5 more
06-25 11:38:17.497: D/RootTools v3.4(22124): Command 43 finished.

What am I doing wrong?

from roottools.

v-yadli avatar v-yadli commented on July 29, 2024

I got it working. Was having the same problem. And I had a guess that "since the RootClass isn't found, let's put it into the anbuild.dex" -- and it works.

Comment out the AVOIDPATH, and then add annotation for itself. Hack the lookup routine so that it catches itself.

from roottools.

v-yadli avatar v-yadli commented on July 29, 2024

A better solution:

  1. Create a new android project, and put RootClass in it. (for runtime)
  2. Create a new Java project, and put RootClass in it. (for compile)
  3. Make your project extract anbuild.dex manually. (It doesn't seem to extract automatically here) Extract it under getActivity().getFilesDir()
  4. Hack the Java side to copy the android project .class files to your target build path before building the jar
  5. Run it in your target path
  6. Clean you project, rebuild
  7. Test it. =)

from roottools.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.