Update 14th Aug 2011: JesusFreke has released a new version of baksmali (v1.2.7) which seems to have fixed the bug above
You may download it from here http://blog.jesusfreke.com/2011/08/smalibaksmali-127.html - Thank you JesusFreke for a great tool and support
Please feel free to report any bugs or issues with this tool here or on his blog.
-------------
Good news to all modders out there - I finally found the bug for real this time - unfortunately, it's in baksmali.jar" .. The fault occurs when it attempts tobuild deodex framework.jarodex from into smali files
specifically this file "android/view/SurfaceView.smali"
I believe baksmali (v1.2.6) just fails to realize that the class variable it wants to access belongs to the super (parent) class .. instead it simply accesses the local class variable.
But I have awork-around fix to the bug (guranteed to work as long as the order of class fields mLeft and mTop are the same in android/view/SurfaceView.smali as android/webkit/WebViewCore$ShowRectData.smali)
The solution:
1. replace
with
2. and this
with
3. and
with
4. and last peice
with
*NOTE* please keep my nickname in references for this solution.
Happy Modding,
- Brightidea
You may download it from here http://blog.jesusfreke.com/2011/08/smalibaksmali-127.html - Thank you JesusFreke for a great tool and support
Please feel free to report any bugs or issues with this tool here or on his blog.
-------------
Good news to all modders out there - I finally found the bug for real this time - unfortunately, it's in baksmali.jar" .. The fault occurs when it attempts to
specifically this file "android/view/SurfaceView.smali"
I believe baksmali (v1.2.6) just fails to realize that the class variable it wants to access belongs to the super (parent) class .. instead it simply accesses the local class variable.
But I have a
The solution:
1. replace
Code:
.method private super_mLeft()I
.registers 2
.prologue
.line 911
iget v0, p0, Landroid/view/SurfaceView;->mLeft:I
return v0
.end method
Code:
.method private super_mLeft()I
.registers 2
.prologue
.line 911
iget v0, p0, [strike]Landroid/webkit/WebView;[/strike][COLOR="Red"]Landroid/view/View;[/COLOR]->mLeft:I
return v0
.end method
2. and this
Code:
.method private super_mTop()I
.registers 2
.prologue
.line 914
iget v0, p0, Landroid/view/SurfaceView;->mTop:I
return v0
.end method
with
Code:
.method private super_mTop()I
.registers 2
.prologue
.line 914
iget v0, p0, [strike]Landroid/webkit/WebView;[/strike][COLOR="Red"]Landroid/view/View;[/COLOR]->mTop:I
return v0
.end method
3. and
Code:
iget-object v0, v0, Landroid/view/SurfaceView;->mLocation:[I
move-object v5, v0
const/4 v6, 0x0
move-object/from16 v0, p0
iget v0, v0, Landroid/view/SurfaceView;->mLeft:I
move v7, v0
add-int v7, v7, p4
aput v7, v5, v6
Code:
iget-object v0, v0, Landroid/view/SurfaceView;->mLocation:[I
move-object v5, v0
const/4 v6, 0x0
move-object/from16 v0, p0
iget v0, v0, [strike]Landroid/webkit/WebView;[/strike][COLOR="Red"]Landroid/view/View;[/COLOR]->mLeft:I
move v7, v0
add-int v7, v7, p4
aput v7, v5, v6
4. and last peice
Code:
iget-object v0, v0, Landroid/view/SurfaceView;->mLocation:[I
move-object v5, v0
const/4 v6, 0x1
move-object/from16 v0, p0
iget v0, v0, Landroid/view/SurfaceView;->mTop:I
move v7, v0
add-int v7, v7, p5
aput v7, v5, v6
.line 439
Code:
iget-object v0, v0, Landroid/view/SurfaceView;->mLocation:[I
move-object v5, v0
const/4 v6, 0x1
move-object/from16 v0, p0
iget v0, v0, [strike]Landroid/webkit/WebView;[/strike][COLOR="Red"]Landroid/view/View;[/COLOR]->mTop:I
move v7, v0
add-int v7, v7, p5
aput v7, v5, v6
.line 439
*NOTE* please keep my nickname in references for this solution.
Happy Modding,
- Brightidea
Last edited: