Visualizzazione stampabile
-
Guida: Modificare il numero dei toggles visibili [Jelly Bean]
Partiamo decompilando il SecSettings.apk
Aprite il file
/res/values/arrays.xml ed aggiungete in fondo alla pagina le seguenti righe
[code]
<string-array name="toggles_number_entries">
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
</string-array>
<string-array name="toggles_number_value">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
[code]
Aprite ora il file
res/xml/display_settings.xml ed inserite nel punto che preferite la seguente riga
codice:
<ListPreference android:persistent="false" android:entries="@array/toggles_number_entries" android:title="Numero Toggles Visibili" android:key="toggles_number_count" android:summary="Verrà riavviato il systemUI" android:widgetLayout="@layout/round_more_icon" android:entryValues="@array/toggles_number_value" />
Andate poi in
smali/com/android/settings/DisplaySettings.smali
cercate
[code]
field private mTouchKeyLight:Landroid/preference/ListPreference;
[code]
e aggiungete sopra di questa la riga
codice:
.field private mTogglesNumber:Landroid/preference/ListPreference;
Andate nel metodo
.method public onCreate(Landroid/os/Bundle;)V
cercate questo spezzone di codice
codice:
.line 423
const-string v12, "font_size"
invoke-virtual {p0, v12}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v12
check-cast v12, Landroid/preference/ListPreference;
iput-object v12, p0, Lcom/android/settings/DisplaySettings;->mFontSizePref:Landroid/preference/ListPreference;
.line 424
e aggiungete sotto di esso
codice:
const-string v12, "toggles_number_count"
invoke-virtual {p0, v12}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v12
check-cast v12, Landroid/preference/ListPreference;
iput-object v12, p0, Lcom/android/settings/DisplaySettings;->mTogglesNumber:Landroid/preference/ListPreference;
const-string v12, "toggles_number_count"
const/4 v13, 0x0
invoke-static {v8, v12, v13}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v12
iget-object v13, p0, Lcom/android/settings/DisplaySettings;->mTogglesNumber:Landroid/preference/ListPreference;
invoke-static {v12}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v12
invoke-virtual {v13, v12}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V
iget-object v13, p0, Lcom/android/settings/DisplaySettings;->mTogglesNumber:Landroid/preference/ListPreference;
invoke-virtual {v13, p0}, Landroid/preference/SwitchPreferenceScreen;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
Recatevi ora nel metodo
.method public onPreferenceChange(Landroid/preference/Preference;Ljava/lang/Object;)Z
e sotto al seguente spezzone di codice
codice:
.line 1100
const-string v1, "DisplaySettings"
const-string v3, "CONTEXTUALPAGE_SWITCH_CHANGED changed = false"
invoke-static {v1, v3}, Landroid/util/Log;->secD(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_7
:cond_41
move-wide v0, v4
goto/16 :goto_3
:cond_42
inserite sotto le seguenti righe
codice:
iget-object v1, p0, Lcom/android/settings/DisplaySettings;->mTogglesNumber:Landroid/preference/ListPreference;
if-ne p1, v1, :cond_2
check-cast p2, Ljava/lang/String;
invoke-static {p2}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v0
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v2, "toggles_number_count"
invoke-static {v1, v2, v0}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
Chiudete e ricompilate il SecSettings.apk
Se utilizzate i Toggles Lidroid Wanam...decompilate la lidroid-res.apk
aprite il file /res/value/integer.xml
cercate la riga
codice:
<integer name="quickpanel_scroll_threshold_port">5</integer>
e aggiungete sotto di essa le seguenti righe
codice:
<integer name="quickpanel_scroll_threshold_port6">6</integer>
<integer name="quickpanel_scroll_threshold_port7">7</integer>
<integer name="quickpanel_scroll_threshold_port8">8</integer>
compilate e ridecompilate per ottenere i relativi ids
aprire quindi il file /res/value/public.xml, cercate gli ids creati e tenete aperta la pagina per verificare che siano uguali a quelli da me ottenuti.
Segue....
-
Decompilate ora il SystemUI.apk
aprite il file
smali/com/wanam/systemui/quickpanel/PowerWidget.smali
cercate il metodo
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
cambiate il .locals 3 in .locals 6
cercate nello stesso metodo l'ids relativo a "quickpanel_scroll_threshold_port" che nel mio caso corrisponde a questo valore "0x50a000a" e modificate come segue:
codice:
iget-object v3, p0, Lcom/wanam/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v3}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
const-string v4, "toggles_number_count"
const v5, 0x0
invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
const v4, 0x1
if-eq v3, v4, :cond_0
const v4, 0x2
if-eq v3, v4, :cond_1
const v4, 0x3
if-eq v3, v4, :cond_2
const v1, 0x50a000a -> ids di quickpanel_scroll_threshold_port
goto :goto_0
:cond_0
const v1, 0x50a000c -> ids di quickpanel_scroll_threshold_port6
goto :goto_0
:cond_1
const v1, 0x50a000d -> ids di quickpanel_scroll_threshold_port7
goto :goto_0
:cond_2
const v1, 0x50a000e -> ids di quickpanel_scroll_threshold_port8
:goto_0
alla fine del metodo aggiungere la riga in rosso
codice:
invoke-direct {p0, v2}, Lcom/wanam/systemui/quickpanel/PowerWidget;->regObserver9(Landroid/content/ContentResolver;)V
return-void
.end method
Aggiungere il metodo
codice:
method private regObserver9(Landroid/content/ContentResolver;)V
.locals 3
.parameter "cs"
.prologue
const/4 v2, 0x0
new-instance v0, Lcom/wanam/systemui/quickpanel/PowerWidget9$SettingsObserver;
new-instance v1, Landroid/os/Handler;
invoke-direct {v1}, Landroid/os/Handler;-><init>()V
invoke-direct {v0, p0, p0, v1}, Lcom/wanam/systemui/quickpanel/PowerWidget9$SettingsObserver;-><init>(Lcom/wanam/systemui/quickpanel/PowerWidget;Lcom/wanam/systemui/quickpanel/PowerWidget;Landroid/os/Handler;)V
.local v0, ob:Lcom/wanam/systemui/quickpanel/PowerWidget9$SettingsObserver;
const-string v1, "toggles_number_count"
invoke-static {v1}, Landroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v1
invoke-virtual {p1, v1, v2, v0}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V
return-void
.end method
Inserite il file smali contenuto in PowerWidget9$SettingsObserver.zip per ottenere le modifiche in tempo reale
Toggles Samsung
aprite il file
res/values-port/integers.xml
cercate la riga
codice:
<integer name="config_QuickSettingButtonCount">5</integer>
e aggiungete le seguenti righe
codice:
<integer name="config_QuickSettingButtonCount6">6</integer>
<integer name="config_QuickSettingButtonCount7">7</integer>
<integer name="config_QuickSettingButtonCount8">8</integer>
fate la stessa cosa anche in:
/res/values-sw800dp/integers.xml
decompilate e ricompilate per ottenere i relativi ids
aprite il file
smali/com/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel.smali
cercate il metodo .method private update()V
cambiate il .locals 2 in .locals 6
cercate nello stesso metodo l'ids relativo a "config_QuickSettingButtonCount" che nel mio caso corrisponde a "0x7f0b0009" e modificate come segue:
codice:
iget-object v3, p0, Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel;->mContext:Landroid/content/Context;
invoke-virtual {v3}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
const-string v4, "toggles_number_count"
const v5, 0x0
invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
const v4, 0x1
if-eq v3, v4, :cond_0
const v4, 0x2
if-eq v3, v4, :cond_1
const v4, 0x3
if-eq v3, v4, :cond_2
const v1, 0x7f0b0009 -> ids di config_QuickSettingButtonCount
goto :goto_0
:cond_0
const v1, 0x7f0b000a -> ids di config_QuickSettingButtonCount6
goto :goto_0
:cond_1
const v1, 0x7f0b000b -> ids di config_QuickSettingButtonCount7
goto :goto_0
:cond_2
const v1, 0x7f0b000c -> ids di config_QuickSettingButtonCount8
:goto_0
Se non utilizzate i toggles lidroid aggiungete le righe e il file observer precedentemente descritti.
Segue....
-
Toggles Quickpanel (su più righe)
Se utilizzate i quickpanel toggles aprite il file
/smali/com/newtoggles/systemui/quickpanel/PowerWidget.smali
cercate la riga
codice:
.field private static final LAYOUT_SCROLL_BUTTON_THRESHOLD_PORT:I = 0x5
e modificatela in
[/code]
.field private static final LAYOUT_SCROLL_BUTTON_THRESHOLD_PORT:I = 0x0
[/code]
cercate il metodo .method private addViewToLinearLayoutRowsAndFixWidth(Landroid/view/View;I)V
cambiate il .locals 11 in .locals 13
ed eliminate la riga subito dopo "const/16 v10, 0x28"
cercate la riga evidenziata in rosso
codice:
:cond_4
const/16 v4, 0x21
if-lt p2, v4, :cond_0
if-gt p2, v10, :cond_0
iget-object v4, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mLinearLayoutRow5:Landroid/widget/LinearLayout;
e cambiatela come segue
codice:
const/16 v4, 0x21
if-lt p2, v4, :cond_0
const/16 v4, 0x28
if-gt p2, v4, :cond_0
iget-object v4, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mLinearLayoutRow5:Landroid/widget/LinearLayout;
cercate questa porzione di codice
codice:
:cond_5
iget-object v4, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v4}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v4
invoke-virtual {v4}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
move-result-object v4
iget v4, v4, Landroid/util/DisplayMetrics;->widthPixels:I
div-int/lit8 v3, v4, 0x5
new-instance v1, Landroid/widget/LinearLayout$LayoutParams;
e cambiatela in questo modo:
codice:
iget-object v10, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v10}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v10
const-string v11, "toggles_number_count"
const v12, 0x0
invoke-static {v10, v11, v12}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v10
const v11, 0x1
if-eq v10, v11, :cond_6
const v11, 0x2
if-eq v10, v11, :cond_7
const v11, 0x3
if-eq v10, v11, :cond_8
div-int/lit8 v3, v4, 0x5
goto :goto_1
:cond_6
div-int/lit8 v3, v4, 0x6
goto :goto_1
:cond_7
div-int/lit8 v3, v4, 0x7
goto :goto_1
:cond_8
div-int/lit8 v3, v4, 0x8
:goto_1
new-instance v1, Landroid/widget/LinearLayout$LayoutParams;
un paio di righe sotto troverete un codice simile a questo
codice:
if-lt p2, v7, :cond_6
const/4 v4, 0x5
if-gt p2, v4, :cond_6
modificatelo come segue
codice:
if-lt p2, v7, :cond_c
iget-object v10, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v10}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v10
const-string v11, "toggles_number_count"
const v12, 0x0
invoke-static {v10, v11, v12}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v10
const v11, 0x1
if-eq v10, v11, :cond_9
const v11, 0x2
if-eq v10, v11, :cond_a
const v11, 0x3
if-eq v10, v11, :cond_b
const/16 v4, 0x5
goto :goto_2
:cond_9
const/16 v4, 0x6
goto :goto_2
:cond_a
const/16 v4, 0x7
goto :goto_2
:cond_b
const/16 v4, 0x8
:goto_2
if-gt p2, v4, :cond_c
un altro paio di righe sotto la porzione di codice che segue
codice:
goto :goto_0
:cond_6
const/4 v4, 0x6
if-lt p2, v4, :cond_7
const/16 v4, 0xa
if-gt p2, v4, :cond_7
va modificata in questo modo
codice:
goto/16 :goto_0
:cond_c
iget-object v10, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v10}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v10
const-string v11, "toggles_number_count"
const v12, 0x0
invoke-static {v10, v11, v12}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v10
const v11, 0x1
if-eq v10, v11, :cond_d
const v11, 0x2
if-eq v10, v11, :cond_e
const v11, 0x3
if-eq v10, v11, :cond_f
const/16 v4, 0x6
goto :goto_3
:cond_d
const/16 v4, 0x7
goto :goto_3
:cond_e
const/16 v4, 0x8
goto :goto_3
:cond_f
const/16 v4, 0x9
:goto_3
if-lt p2, v4, :cond_13
iget-object v10, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v10}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v10
const-string v11, "toggles_number_count"
const v12, 0x0
invoke-static {v10, v11, v12}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v10
const v11, 0x1
if-eq v10, v11, :cond_10
const v11, 0x2
if-eq v10, v11, :cond_11
const v11, 0x3
if-eq v10, v11, :cond_12
const/16 v4, 0xa
goto :goto_4
:cond_10
const/16 v4, 0xc
goto :goto_4
:cond_11
const/16 v4, 0xe
goto :goto_4
:cond_12
const/16 v4, 0x10
:goto_4
if-gt p2, v4, :cond_13
altre due righe più in basso il seguente codice
codice:
goto :goto_0
:cond_7
const/16 v4, 0xb
if-lt p2, v4, :cond_8
const/16 v4, 0xf
if-gt p2, v4, :cond_8
deve essere modificato come segue
codice:
goto/16 :goto_0
:cond_13
iget-object v10, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v10}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v10
const-string v11, "toggles_number_count"
const v12, 0x0
invoke-static {v10, v11, v12}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v10
const v11, 0x1
if-eq v10, v11, :cond_14
const v11, 0x2
if-eq v10, v11, :cond_15
const v11, 0x3
if-eq v10, v11, :cond_16
const/16 v4, 0xb
goto :goto_5
:cond_14
const/16 v4, 0xd
goto :goto_5
:cond_15
const/16 v4, 0xf
goto :goto_5
:cond_16
const/16 v4, 0x11
:goto_5
if-lt p2, v4, :cond_1a
iget-object v10, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v10}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v10
const-string v11, "toggles_number_count"
const v12, 0x0
invoke-static {v10, v11, v12}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v10
const v11, 0x1
if-eq v10, v11, :cond_17
const v11, 0x2
if-eq v10, v11, :cond_18
const v11, 0x3
if-eq v10, v11, :cond_19
const/16 v4, 0xf
goto :goto_6
:cond_17
const/16 v4, 0x12
goto :goto_6
:cond_18
const/16 v4, 0x15
goto :goto_6
:cond_19
const/16 v4, 0x18
:goto_6
if-gt p2, v4, :cond_1a
Segue....
-
scendete di ancora di un paio di righe sotto e modificate il codice
codice:
goto :goto_0
:cond_8
if-lt p2, v8, :cond_9
const/16 v4, 0x14
if-gt p2, v4, :cond_9
in
codice:
goto/16 :goto_0
:cond_1a
iget-object v10, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v10}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v10
const-string v11, "toggles_number_count"
const v12, 0x0
invoke-static {v10, v11, v12}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v10
const v11, 0x1
if-eq v10, v11, :cond_1b
const v11, 0x2
if-eq v10, v11, :cond_1c
const v11, 0x3
if-eq v10, v11, :cond_1d
const/16 v4, 0x10
goto :goto_7
:cond_1b
const/16 v4, 0x13
goto :goto_7
:cond_1c
const/16 v4, 0x16
goto :goto_7
:cond_1d
const/16 v4, 0x19
:goto_7
if-lt p2, v4, :cond_21
iget-object v10, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v10}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v10
const-string v11, "toggles_number_count"
const v12, 0x0
invoke-static {v10, v11, v12}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v10
const v11, 0x1
if-eq v10, v11, :cond_1e
const v11, 0x2
if-eq v10, v11, :cond_1f
const v11, 0x3
if-eq v10, v11, :cond_20
const/16 v4, 0x14
goto :goto_8
:cond_1e
const/16 v4, 0x18
goto :goto_8
:cond_1f
const/16 v4, 0x1c
goto :goto_8
:cond_20
const/16 v4, 0x20
:goto_8
if-gt p2, v4, :cond_21
altre due righe sotto il codice seguente
codice:
goto :goto_0
:cond_9
const/16 v4, 0x15
if-lt p2, v4, :cond_a
if-gt p2, v9, :cond_a
modificatelo cosi
codice:
goto/16 :goto_0
:cond_21
iget-object v10, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v10}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v10
const-string v11, "toggles_number_count"
const v12, 0x0
invoke-static {v10, v11, v12}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v10
const v11, 0x1
if-eq v10, v11, :cond_22
const v11, 0x2
if-eq v10, v11, :cond_23
const v11, 0x3
if-eq v10, v11, :cond_24
const/16 v4, 0x15
goto :goto_9
:cond_22
const/16 v4, 0x19
goto :goto_9
:cond_23
const/16 v4, 0x1d
goto :goto_9
:cond_24
const/16 v4, 0x21
:goto_9
if-lt p2, v4, :cond_28
iget-object v10, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v10}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v10
const-string v11, "toggles_number_count"
const v12, 0x0
invoke-static {v10, v11, v12}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v10
const v11, 0x1
if-eq v10, v11, :cond_25
const v11, 0x2
if-eq v10, v11, :cond_26
const v11, 0x3
if-eq v10, v11, :cond_27
const/16 v4, 0x19
goto :goto_a
:cond_25
const/16 v4, 0x1e
goto :goto_a
:cond_26
const/16 v4, 0x23
goto :goto_a
:cond_27
const/16 v4, 0x28
:goto_a
if-gt p2, v4, :cond_28
ora tre righe più in basso apportate le modifiche evidenziate in rosso
codice:
:cond_a -> :cond_28
const/16 v4, 0x1a
if-lt p2, v4, :cond_b -> if-lt p2, v4, :cond_29
const/16 v4, 0x1e
if-gt p2, v4, :cond_b -> if-gt p2, v4, :cond_29
iget-object v4, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mLinearLayoutRow6:Landroid/widget/LinearLayout;
invoke-virtual {v4, p1, v1}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
goto/16 :goto_0
:cond_b -> :cond_29
const/16 v4, 0x1f
if-lt p2, v4, :cond_c -> if-lt p2, v4, :cond_2a
const/16 v4, 0x23
if-gt p2, v4, :cond_c -> if-gt p2, v4, :cond_2a
iget-object v4, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mLinearLayoutRow7:Landroid/widget/LinearLayout;
invoke-virtual {v4, p1, v1}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
goto/16 :goto_0
:cond_c -> :cond_2a
const/16 v4, 0x24
Cercate ora il metodo
.method private needScrollBar(I)Z
cambiate il .locals 5 -> .locals 8
e verso la fine del metodo cercate la seguente porzione di codice
codice:
:cond_1
const/4 v1, 0x5
if-le p1, v1, :cond_2
e modificatelo come segue
codice:
:cond_1
iget-object v5, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v5}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v5
const-string v6, "toggles_number_count"
const v7, 0x0
invoke-static {v5, v6, v7}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v5
const v6, 0x1
if-eq v5, v6, :cond_2
const v6, 0x2
if-eq v5, v6, :cond_3
const v6, 0x3
if-eq v5, v6, :cond_4
const/16 v1, 0x5
goto :goto_1
:cond_2
const/16 v1, 0x6
goto :goto_1
:cond_3
const/16 v1, 0x7
goto :goto_1
:cond_4
const/16 v1, 0x8
:goto_1
if-le p1, v1, :cond_5
prima della chiusura del metodo cambiate il :cond_2 in :cond_5
Per terminare cercate il metodo
.method private updateButtonLayoutWidth()V
cambiate il .locals 3 in .locals 6
verso la fine di tale metodo individuate la riga
codice:
div-int/lit8 v2, v2, 0x5
e modificatela come segue
codice:
iget-object v3, p0, Lcom/newtoggles/systemui/quickpanel/PowerWidget;->mContext:Landroid/content/Context;
invoke-virtual {v3}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
const-string v4, "toggles_number_count"
const v5, 0x0
invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
const v4, 0x1
if-eq v3, v4, :cond_1
const v4, 0x2
if-eq v3, v4, :cond_2
const v4, 0x3
if-eq v3, v4, :cond_3
div-int/lit8 v2, v2, 0x5
goto :goto_1
:cond_1
div-int/lit8 v2, v2, 0x6
goto :goto_1
:cond_2
div-int/lit8 v2, v2, 0x7
goto :goto_1
:cond_3
div-int/lit8 v2, v2, 0x8
:goto_1
Ricompilate la lidroid-res.apk, il SystemUI.apk, SecSettings.apk e inserite i file nella vostra rom.
-
regaz a me se cerco di ricompilare il classes.dex del core-libart.jar mi dice:
classout\java\lang\Class.smali[0,0] 2097152 cannot fit into a short
classout\java\lang\Class.smali[834,4] mismatched tree node: I_STATEMENT_FORMAT12
x expecting I_CATCHES
classout\java\lang\Class.smali[843,4] mismatched tree node: I_STATEMENT_FORMAT21
t expecting <UP>
classout\java\lang\String.smali[0,0] 65536 cannot fit into a short
classout\java\lang\String.smali[771,4] mismatched tree node: I_STATEMENT_FORMAT2
2x expecting I_CATCHES
classout\java\lang\String.smali[779,4] mismatched tree node: I_STATEMENT_FORMAT2
2x expecting <UP>
come posso fare?
-
Quote:
Originariamente inviato da
supermodder
regaz a me se cerco di ricompilare il classes.dex del core-libart.jar mi dice:
classout\java\lang\Class.smali[0,0] 2097152 cannot fit into a short
classout\java\lang\Class.smali[834,4] mismatched tree node: I_STATEMENT_FORMAT12
x expecting I_CATCHES
classout\java\lang\Class.smali[843,4] mismatched tree node: I_STATEMENT_FORMAT21
t expecting
classout\java\lang\String.smali[0,0] 65536 cannot fit into a short
classout\java\lang\String.smali[771,4] mismatched tree node: I_STATEMENT_FORMAT2
2x expecting I_CATCHES
classout\java\lang\String.smali[779,4] mismatched tree node: I_STATEMENT_FORMAT2
2x expecting
come posso fare?
Che tipo di modifiche stai facendo.?
Che versione di android? Riesci a postare il tuo Class.smali e il tuo String.smali?
-
Quote:
Originariamente inviato da
nicola78
Che tipo di modifiche stai facendo.?
Che versione di android? Riesci a postare il tuo Class.smali e il tuo String.smali?
Ops...ho sbagliato sezione rotfl perchè io sto moddando l's5 con lollipop 5.0 per installare xposed,e solo adesso ho notato che questa è la sezione s2 :'(
Comunque se mi vuoi aiutare lo stesso dove li trovo i 2 .smali da postare?
-
Quote:
Originariamente inviato da
supermodder
Ops...ho sbagliato sezione rotfl perchè io sto moddando l's5 con lollipop 5.0 per installare xposed,e solo adesso ho notato che questa è la sezione s2 :'(
Comunque se mi vuoi aiutare lo stesso dove li trovo i 2 .smali da postare?
Ma tu che file hai modificato?
-
Quote:
Originariamente inviato da
nicola78
Ma tu che file hai modificato?
il classes.dex del file core-libart.jar;più nello specifico i file PathClassLoader,class,dexcache,string,artfield e artMethod,che andavano sostituiti con i medesimi file di un archivio.Solo che,quando ricompilo il classes.dex modificato mi dà quegli errori
-
Quote:
Originariamente inviato da
supermodder
il classes.dex del file core-libart.jar;più nello specifico i file PathClassLoader,class,dexcache,string,artfield e artMethod,che andavano sostituiti con i medesimi file di un archivio.Solo che,quando ricompilo il classes.dex modificato mi dà quegli errori
Sai se quei file dell'archivio vanno bene per lollipop?
I file che ti hanno dato problemi in fase di compilazione sono quelli dell'archivio
Postalo gli do un'occhiata
-
Quote:
Originariamente inviato da
nicola78
Sai se quei file dell'archivio vanno bene per lollipop?
I file che ti hanno dato problemi in fase di compilazione sono quelli dell'archivio
Postalo gli do un'occhiata
si sono quelli dell'archivio sostituiti a quelli originali,comunque
How to Install Xposed Framework on Samsung TW Lollipop ROMsQuesto è il link diretto alla guida,guardaci e vedi cosa riesci a fare,l'archivio si chiama darkera13_SamsungViet_Xposed_core-libart.jar-2.zip,sono nelle tue mani :)
-
2 allegato(i)
Quote:
Originariamente inviato da
supermodder
regaz a me se cerco di ricompilare il classes.dex del core-libart.jar mi dice:
classout\java\lang\Class.smali[0,0] 2097152 cannot fit into a short
classout\java\lang\Class.smali[834,4] mismatched tree node: I_STATEMENT_FORMAT12
x expecting I_CATCHES
classout\java\lang\Class.smali[843,4] mismatched tree node: I_STATEMENT_FORMAT21
t expecting <UP>
classout\java\lang\String.smali[0,0] 65536 cannot fit into a short
classout\java\lang\String.smali[771,4] mismatched tree node: I_STATEMENT_FORMAT2
2x expecting I_CATCHES
classout\java\lang\String.smali[779,4] mismatched tree node: I_STATEMENT_FORMAT2
2x expecting <UP>
come posso fare?
Allora ,il problema del file Class dell'archivio è nella linea 832
Allegato 146375
in questo caso devi modificare la linea
codice:
const/high16 v8, 0x200000
in
codice:
const/high16 v8, 0x200000000
mentre nel file String dell'archivio l'errore è nella linea 769
Allegato 146376
in questo caso devi modificare la linea
codice:
const/high16 v24, 0x10000
in
codice:
const/high16 v24, 0x100000000
se nella compilazione avrai errori dello stesso tipo, non dovrai fare altro che cercare la linea indicata nel prompt e aggiungere gli zeri.
in genere questo tipo di errori si hanno nelle linee con
-
Quote:
Originariamente inviato da
nicola78
Allora ,il problema del file Class dell'archivio è nella linea 832
Allegato 146375
in questo caso devi modificare la linea
codice:
const/high16 v8, 0x200000
in
codice:
const/high16 v8, 0x200000000
mentre nel file String dell'archivio l'errore è nella linea 769
Allegato 146376
in questo caso devi modificare la linea
codice:
const/high16 v24, 0x10000
in
codice:
const/high16 v24, 0x100000000
se nella compilazione avrai errori dello stesso tipo, non dovrai fare altro che cercare la linea indicata nel prompt e aggiungere gli zeri.
in genere questo tipo di errori si hanno nelle linee con
Ti ringrazio tantissimo..adesso appena torno a casa ci provo e spero di risolvere😊
-
Salve spero sia ancora attivo questo thread ho un problema con apktool (premetto che ho un lenovo ) praticamente devo tradurre il framework-res io faccio i soliti passaggi installo il framework-res e nel caso del mio dispositivo il mediatek-res e lenovo-res scompatto il framework-res con "d" e fino qua tutto apposto faccio la cartella values-it la copio in res e sempre tutto apposto , adesso copio il resources ricompilo con "b" il processo va a buon fine pero il build apk dura poco e infatti lo fa sbagliato perche se vado a contollare l'apk creato si posso vedere al interno le cartelle values che in un apk ben compilato non si vedono infatti facendo il test non funziona ormai sto impazzendo non so cosa abbia
SCUSATE se scrivo qui ma non sapevo dove scrivere
-
Salve ragazzi qualcuno sa consigliarmi come settare un onclicklistener per cambiare tramite click l'orologio da analogico a digitale? La mod l'ho già fatta e funziona CN custom settings ma vorrei cambiare metodo e farlo tramite un bottone cliccabile... Se qualcuno potrebbe aiutarmi... @nicola78 tu potresti aiutarmi?