Parte con il framework-res.apk , framework2.jar e framework.jar
Decompilare il framework2.jar
Scaricare questo file ListView_framework2.jar.zip e sostituire con i file all' interno di esso quelli presenti in framework2\classout\android\widget\
Decompilare il framework-res.apk e andare in res\value e aprire il file public.xml e cercare le seguenti stringhe
codice:
<public type="attr" name="absListViewStyle" id="0x010?????" />
codice:
<public type="style" name="Animation.TypingFilter" id="0x010?????" />
codice:
<public type="style" name="Animation.TypingFilterRestore" id="0x010?????" />
codice:
<public type="layout" name="typing_filter" id="0x010?????" />
codice:
<public type="drawable" name="list_selector_background" id="0x010?????" />
codice:
<public type="anim" name="accelerate_interpolator" id="0x010?????" />
codice:
<public type="anim" name="decelerate_interpolator" id="0x010?????" />
codice:
<public type="anim" name="accelerate_decelerate_interpolator" id="0x010?????" />
codice:
<public type="anim" name="anticipate_interpolator" id="0x010?????" />
codice:
<public type="anim" name="overshoot_interpolator" id="0x010?????" />
codice:
<public type="anim" name="anticipate_overshoot_interpolator" id="0x010?????" />
codice:
<public type="anim" name="bounce_interpolator" id="0x010?????" />
Prendere nota degli ids 0x010?????
Andare in framework2\classout\android\widget\ ed aprire il file AbsListView.smali
cercare la seguente stringa
const v0, 0x101006a
e sostituire il valore 0x101006a con il
codice:
<public type="attr" name="absListViewStyle" id="0x010?????" />
trovato nel public.xml
cercare la seguente stringa
const v2, 0x10301e1
e sostituire il valore 0x10301e1 con il
codice:
<public type="style" name="Animation.TypingFilter" id="0x010?????" />
cercare la seguente stringa
const v2, 0x10301e2
e sostituire il valore 0x10301e2 con il
codice:
<public type="style" name="Animation.TypingFilterRestore" id="0x010?????" />
cercare la seguente stringa
const v1, 0x109013a
e sostituire il valore 0x109013a con il
codice:
<public type="layout" name="typing_filter" id="0x010?????" />
cercare la seguente stringa
const v1, 0x1080062
e sostituire il valore 0x1080062 con il
codice:
<public type="drawable" name="list_selector_background" id="0x010?????" />
cercare la seguente stringa
const v2, 0x10a0005
e sostituire il valore 0x10a0005 con il
codice:
<public type="anim" name="accelerate_interpolator" id="0x010?????" />
cercare la seguente stringa
const v2, 0x10a0006
e sostituire il valore 0x10a0006 con il
codice:
<public type="anim" name="decelerate_interpolator" id="0x010?????" />
cercare la seguente stringa
const v2, 0x10a0004
e sostituire il valore 0x10a0004 con il
codice:
<public type="anim" name="accelerate_decelerate_interpolator" id="0x010?????" />
cercare la seguente stringa
const v2, 0x10a0007
e sostituire il valore 0x10a0007 con il
codice:
<public type="anim" name="anticipate_interpolator" id="0x010?????" />
cercare la seguente stringa
const v2, 0x10a0008
e sostituire il valore 0x10a0008 con il
codice:
<public type="anim" name="overshoot_interpolator" id="0x010?????" />
cercare la seguente stringa
const v2, 0x10a0009
e sostituire il valore 0x10a0009 con il
codice:
<public type="anim" name="anticipate_overshoot_interpolator" id="0x010?????" />
cercare la seguente stringa
const v2, 0x10a000a
e sostituire il valore 0x10a000a con il
codice:
<public type="anim" name="bounce_interpolator" id="0x010?????" />
Salvare le modifiche
Andare in classout/android/widget/ ed aprire il file RemoteViewsAdapter.smali e in questo file aggiungere il seguente metodo evidenziato in rosso
codice:
:try_start_75
throw v4
:try_end_76
.catchall {:try_start_75 .. :try_end_76} :catchall_70
.end method
.method public setRemoteViewsOnClickHandler(Landroid/widget/RemoteViews$OnClickHandler;)V
.registers 2
.parameter "handler"
.prologue
.line 906
iput-object p1, p0, Landroid/widget/RemoteViewsAdapter;->mRemoteViewsOnClickHandler:Landroid/widget/RemoteViews$OnClickHandler;
.line 907
return-void
.end method
.method public setVisibleRangeHint(II)V
.registers 3
.parameter "lowerBound"
.parameter "upperBound"
.prologue
.line 1062
iput p1, p0, Landroid/widget/RemoteViewsAdapter;->mVisibleWindowLowerBound:I
.line 1063
iput p2, p0, Landroid/widget/RemoteViewsAdapter;->mVisibleWindowUpperBound:I
.line 1064
return-void
.end method
Salvare tutte le modifiche
Decompilare il framework.jar, andare in classout/android/view ed aprire il file View.smali e in questo file aggiungere il seguente metodo evidenziato in rosso
codice:
.line 15892
iget-object v0, p0, Landroid/view/View;->mBackground:Landroid/graphics/drawable/Drawable;
invoke-virtual {p0, v0, p1}, Landroid/view/View;->applyDrawableToTransparentRegion(Landroid/graphics/drawable/Drawable;Landroid/graphics/Region;)V
goto :goto_2f
.end method
.method public getAccessibilityDelegate()Landroid/view/View$AccessibilityDelegate;
.registers 2
.prologue
.line 5668
iget-object v0, p0, Landroid/view/View;->mAccessibilityDelegate:Landroid/view/View$AccessibilityDelegate;
return-object v0
.end method
.method public getAccessibilityCursorPosition()I
.locals 1
.prologue
.line 7087
iget v0, p0, Landroid/view/View;->mAccessibilityCursorPosition:I
return v0
.end method
Salvare tutte le modifiche.
Ricompilare il framework2 ,ricompilare il framework, e inserire il SecSettings.apk , il framework2.jar e il framework.jar nel device
Attenzione!!!!
Se si hanno dei problemi di crash con l' applicazione dei Messaggi ,provare ad eseguire questa procedura https://www.androidiani.com/forum/mo...ml#post5917044