[Tutorial] [Updated] UC Modding Tutorials [Part-3]
Saving UC themes in Memory Card:
1> Rename your target UCbrowser as UC.zip with MT file Manager
2>Now select UC.zip and search for .uct with MT. 3 classes named bi.class,av.class and j.class will be extracted for uc 9.4Open the largest j.class and search for .uct. 1 Method will pop up. Open the method and you will see the following code for UC 9.4.
aload_1
ifnonnull Label11
aload_0
invokevirtual j/c()Lh;
goto Label12
Label11:
aload_1
Label12:
astore_1
bipush 7
anewarray java/lang/String
astore_3
aload_2
iconst_0
aload_3
iconst_0
aload_2
arraylength
invokestatic java/lang/System/arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
aload_3
iconst_0
aaload
aload_3
iconst_1
aaload
aload_3
iconst_2
aaload
aload_3
iconst_3
aaload
aload_3
iconst_4
aaload
aload_3
iconst_5
aaload
aload_3
bipush 6
aaload
invokestatic ab/a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
dup
astore_3
iconst_3
aaload
ifnull Label157
aload_3
iconst_3
aaload
ldc ".uct"
invokevirtual java/lang/String/endsWith(Ljava/lang/String;)Z
ifeq Label157 change it to ifne Label157
aload_0
aload_3
astore_2
astore_1
invokestatic bi/b()I
iconst_5
if_icmplt Label101
bipush 99
invokestatic ak/a(I)Ljava/lang/String;
ldc ","
bipush 41
invokestatic ak/a(I)Ljava/lang/String;
invokestatic ab/b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore_1
goto Label146
Label101:
aload_1
getfield j/e Z
ifeq Label117
bipush 42
invokestatic ak/a(I)Ljava/lang/String;
astore_1
goto Label146
Label117:
aload_1
iconst_1
putfield j/e Z
invokestatic av/a()Lav;
pop
aload_2
aconst_null
iconst_3
invokestatic av/a([Ljava/lang/String;Ljava/lang/String;B)Lap;
pop
bipush 45
invokestatic ak/a(I)Ljava/lang/String;
astore_1
invokestatic av/a()Lav;
aconst_null
invokevirtual av/c(Lap;)V
Label146:
getstatic cn/uc/application/app/WebClient/a Lj;
aload_1
aconst_null
invokevirtual j/a(Ljava/lang/String;Ljavax/microedition/lcdui/Displayable;)V
goto Label173
Label157:
invokestatic aj/a()Laj;
astore_2
aload_0
aload_2
aload_3
iconst_0
invokespecial j/a(Laj;[Ljava/lang/String;B)V
aload_1
aload_2
invokevirtual h/d(Laj;)V
Label173:
aload_0
ldc 2359418
invokevirtual bf/l(I)V
return
pop
return
1> Rename your target UCbrowser as UC.zip with MT file Manager
2>Now select UC.zip and search for .uct with MT. 3 classes named bi.class,av.class and j.class will be extracted for uc 9.4Open the largest j.class and search for .uct. 1 Method will pop up. Open the method and you will see the following code for UC 9.4.
aload_1
ifnonnull Label11
aload_0
invokevirtual j/c()Lh;
goto Label12
Label11:
aload_1
Label12:
astore_1
bipush 7
anewarray java/lang/String
astore_3
aload_2
iconst_0
aload_3
iconst_0
aload_2
arraylength
invokestatic java/lang/System/arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
aload_3
iconst_0
aaload
aload_3
iconst_1
aaload
aload_3
iconst_2
aaload
aload_3
iconst_3
aaload
aload_3
iconst_4
aaload
aload_3
iconst_5
aaload
aload_3
bipush 6
aaload
invokestatic ab/a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
dup
astore_3
iconst_3
aaload
ifnull Label157
aload_3
iconst_3
aaload
ldc ".uct"
invokevirtual java/lang/String/endsWith(Ljava/lang/String;)Z
ifeq Label157 change it to ifne Label157
aload_0
aload_3
astore_2
astore_1
invokestatic bi/b()I
iconst_5
if_icmplt Label101
bipush 99
invokestatic ak/a(I)Ljava/lang/String;
ldc ","
bipush 41
invokestatic ak/a(I)Ljava/lang/String;
invokestatic ab/b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore_1
goto Label146
Label101:
aload_1
getfield j/e Z
ifeq Label117
bipush 42
invokestatic ak/a(I)Ljava/lang/String;
astore_1
goto Label146
Label117:
aload_1
iconst_1
putfield j/e Z
invokestatic av/a()Lav;
pop
aload_2
aconst_null
iconst_3
invokestatic av/a([Ljava/lang/String;Ljava/lang/String;B)Lap;
pop
bipush 45
invokestatic ak/a(I)Ljava/lang/String;
astore_1
invokestatic av/a()Lav;
aconst_null
invokevirtual av/c(Lap;)V
Label146:
getstatic cn/uc/application/app/WebClient/a Lj;
aload_1
aconst_null
invokevirtual j/a(Ljava/lang/String;Ljavax/microedition/lcdui/Displayable;)V
goto Label173
Label157:
invokestatic aj/a()Laj;
astore_2
aload_0
aload_2
aload_3
iconst_0
invokespecial j/a(Laj;[Ljava/lang/String;B)V
aload_1
aload_2
invokevirtual h/d(Laj;)V
Label173:
aload_0
ldc 2359418
invokevirtual bf/l(I)V
return
pop
return
95% Network Progress bar:
1> Rename your target UCbrowser as UC.zip with MT file Manager
2>Now select UC.zip and search for <assign data=" with MT or directly extract the 2nd largest Class file. for uc 9.4 Openbb.class and go to Constant Pool and press # key and search for 200. You will see following values in Constant pool
Long_info: 12
Long_info: 12
Long_info: 24
Long_info: 24
Long_info: 200 Change it to 1
Long_info: 200 Change it to 1
Long_info: 500
Long_info: 500
Now we will change how much progress bar will be instantly loaded when we click on a web link.
3> Open the same class and search for bipush 100. Several methods pop up and Search bipush 100 again. For uc9.4 you will see the following code.
Label60:
iload_1
iconst_2 change it to iconst_1
iadd
bipush 60 this denotes how much network progress bar will be loaded. For 95% change it bipush 95
goto Label85
Label68:
iload_1
bipush 100
if_icmpne Label75
return
Label75:
iload_1
iconst_3
goto Label82
Label80:
iload_1
iconst_2
Label82:
iadd
bipush 99
Label85:
invokestatic java/lang/Math/min(II)I
istore_1
Label89:
Now Save the class and test your work
1> Rename your target UCbrowser as UC.zip with MT file Manager
2>Now select UC.zip and search for <assign data=" with MT or directly extract the 2nd largest Class file. for uc 9.4 Openbb.class and go to Constant Pool and press # key and search for 200. You will see following values in Constant pool
Long_info: 12
Long_info: 12
Long_info: 24
Long_info: 24
Long_info: 200 Change it to 1
Long_info: 200 Change it to 1
Long_info: 500
Long_info: 500
Now we will change how much progress bar will be instantly loaded when we click on a web link.
3> Open the same class and search for bipush 100. Several methods pop up and Search bipush 100 again. For uc9.4 you will see the following code.
Label60:
iload_1
iconst_2 change it to iconst_1
iadd
bipush 60 this denotes how much network progress bar will be loaded. For 95% change it bipush 95
goto Label85
Label68:
iload_1
bipush 100
if_icmpne Label75
return
Label75:
iload_1
iconst_3
goto Label82
Label80:
iload_1
iconst_2
Label82:
iadd
bipush 99
Label85:
invokestatic java/lang/Math/min(II)I
istore_1
Label89:
Now Save the class and test your work
Changing download block:
in this example i am taking uc 8.5 as download block works for older versions.
1> Rename UC 8.5 cloud to UC.zip with MT file Manager
2> Now select UC 8.5 and search for 1M with MT. 1 class named j.class will be extracted.
3> Open j.class with MT and search for 1M again. 1 method named i(Lae;)V will pop up. Open it and search again 1Mpressing 8 key. You will see the following code.
invokevirtual ae/a(I[B[BIIZZZ)V
bipush 8 Total number of download block
anewarray java/lang/String
dup
iconst_0
ldc "10K"
aastore
dup
iconst_1
ldc "50K"
aastore
dup
iconst_2
ldc "100K"
aastore
dup
iconst_3
ldc "300K"
aastore
dup
iconst_4
ldc "600K"
aastore
dup
iconst_5
ldc "1M" suppose we will change download block 1M to 900kb. Directly changing from method asks for preverifying. So we will change it from constant pool. close the class and re-open the class With MT and in constant pool search for 1M and change it to 900kb. Remember we have just changed download block name and we have to change values now.
aastore
dup
bipush 6
ldc "2M"
aastore
dup
bipush 7
ldc "5M"
aastore
astore_2
getstatic bd/i B copy this line
aload_2
arraylength
irem
getstatic bd/i B
if_icmpne Label1562
getstatic bd/i B
goto Label1563
Label1562:
Now we will change values:
<1>Select UC.zip with MT and Search for down:lnk. 1 class named aa.class will be extracted. Now open the class and search for getstatic bd/i B that i had said you to copy before. 1 Method named d()V will pop-up. Open it you will see the following codes.
bipush 8
newarray int
dup
iconst_0
sipush 10239
iastore
dup
iconst_1
ldc 51199
iastore
dup
iconst_2
ldc 102399
iastore
dup
iconst_3
ldc 307199
iastore
dup
iconst_4
ldc 614399
iastore
dup
iconst_5
ldc 1048575 It means 1M download block. Copy the values as we will change it from constant pool to avoid preverifying problem. Search in constant pool 1048575 and change it to 921599 which means 900k for download block.
iastore
dup
bipush 6
ldc 2097151
iastore
dup
bipush 7
ldc 5242879
iastore
dup
astore_0
getstatic bd/i B
aload_0
arraylength
irem
getstatic bd/i B
if_icmpne Label67
getstatic bd/i B
goto Label68
Label67:
iconst_1
Label68:
iaload
putstatic aa/b I
return
In the same way you can change Page Segment
C2hallofu's Tutorial
in this example i am taking uc 8.5 as download block works for older versions.
1> Rename UC 8.5 cloud to UC.zip with MT file Manager
2> Now select UC 8.5 and search for 1M with MT. 1 class named j.class will be extracted.
3> Open j.class with MT and search for 1M again. 1 method named i(Lae;)V will pop up. Open it and search again 1Mpressing 8 key. You will see the following code.
invokevirtual ae/a(I[B[BIIZZZ)V
bipush 8 Total number of download block
anewarray java/lang/String
dup
iconst_0
ldc "10K"
aastore
dup
iconst_1
ldc "50K"
aastore
dup
iconst_2
ldc "100K"
aastore
dup
iconst_3
ldc "300K"
aastore
dup
iconst_4
ldc "600K"
aastore
dup
iconst_5
ldc "1M" suppose we will change download block 1M to 900kb. Directly changing from method asks for preverifying. So we will change it from constant pool. close the class and re-open the class With MT and in constant pool search for 1M and change it to 900kb. Remember we have just changed download block name and we have to change values now.
aastore
dup
bipush 6
ldc "2M"
aastore
dup
bipush 7
ldc "5M"
aastore
astore_2
getstatic bd/i B copy this line
aload_2
arraylength
irem
getstatic bd/i B
if_icmpne Label1562
getstatic bd/i B
goto Label1563
Label1562:
Now we will change values:
<1>Select UC.zip with MT and Search for down:lnk. 1 class named aa.class will be extracted. Now open the class and search for getstatic bd/i B that i had said you to copy before. 1 Method named d()V will pop-up. Open it you will see the following codes.
bipush 8
newarray int
dup
iconst_0
sipush 10239
iastore
dup
iconst_1
ldc 51199
iastore
dup
iconst_2
ldc 102399
iastore
dup
iconst_3
ldc 307199
iastore
dup
iconst_4
ldc 614399
iastore
dup
iconst_5
ldc 1048575 It means 1M download block. Copy the values as we will change it from constant pool to avoid preverifying problem. Search in constant pool 1048575 and change it to 921599 which means 900k for download block.
iastore
dup
bipush 6
ldc 2097151
iastore
dup
bipush 7
ldc 5242879
iastore
dup
astore_0
getstatic bd/i B
aload_0
arraylength
irem
getstatic bd/i B
if_icmpne Label67
getstatic bd/i B
goto Label68
Label67:
iconst_1
Label68:
iaload
putstatic aa/b I
return
In the same way you can change Page Segment
C2hallofu's Tutorial
0 comments:
Post a Comment