Assistant
REPLY |
Instructions for editing system resources | Catalog of instructions (manuals) for editing system resources |
Message#1 23.11.10, 23:27 | |
[offline] Group: Honorary Gameday Messages 3497 Check in: 24.05.10 Apple iPhone 7 Reputation: 3135 | Instructions for editing Android system resources We collect knowledge on editing the graphic part of Android
Catalog of manuals and manuals First part The second part of Post has been editedArt2000 - 20.02.19, 07:52 |
Message#22 18.01.13, 02:51 | |
Local [offline] Group: Friendssavagemessiahzine.com Messages 191 Check in: 27.11.08 Reputation: 29 | (Used first APK Manager ruslink , AutoDEODEXTOOL. Then for encoding the jarANDROID_firmware_tool_v1.5, (all in one - includes the first two utilities, for encoding the jar you also need to have the file / system / bin / dexopt-wrapper (with 777 permissions) dexopt-wrapper.zip(2.51 KB) (resources of the /system/app/Settings.apk file) added lines to display_settings.xml (highlighted in color) by analogy with the original <? xml version = "1.0" encoding = "utf-8"?> <PreferenceScreen android: title = "@ string / display_settings" xmlns: android = "http://schemas.android.com/apk/res/android " xmlns: settings = "http://schemas.android.com/apk/res/com.android.settings "> <com.android.settings.BrightnessPreference android: title = "@ string / brightness" android: key = "brightness" android: dialogTitle = "@ string / brightness" /> <PreferenceScreen android: title = "@ string / wallpaper_settings_title" android: key = "wallpaper" android: fragment = "com.android.settings.WallpaperTypeSettings" /> <CheckBoxPreference android: title = "@ string / accelerometer_title" android: key = "accelerometer" /> <ListPreference android: persistent = "false" android: entries = "@ array / status_bar_auto_hide_entries" android: title = "@ string / status_bar_auto_hide_title" android: key = "status_bar_auto_hide" android: summary = "@ string / status_bar_auto_hide_summary_hide" android: summary = "@ string / status_bar_auto_hide_slow" @ array / status_bar_auto_hide_values ​​"/> <ListPreference android: persistent = "false" android: entries = "@ array / screen_timeout_entries" android: title = "@ string / screen_timeout" android: key = "screen_timeout" android: summary = "@ string / screen_timeout_summary" android: entryValues ​​= " @ array / screen_timeout_values ​​"/> <ListPreference android: persistent = "false" android: entries = "@ array / outputmode_entries" android: title = "@ string / tv_output_mode" android: key = "output_mode" android: summary = "@ string / tv_output_mode_summary" android: entryValues ​​= " @ array / outputmode_values ​​"/> <Preference android: persistent = "false" android: title = "@ string / display_position" android: key = "display_position" android: summary = "@ string / display_position_summary" /> <ListPreference android: entries = "@ array / entries_font_size" android: title = "@ string / title_font_size" android: key = "font_size" android: summary = "@ string / summary_font_size" android: dialogTitle = "@ string / dialog_title_font_size" android: entryValues ​​= "@ array / entryvalues_font_size" /> <CheckBoxPreference android: persistent = "false" android: title = "@ string / notification_pulse_title" android: key = "notification_pulse" /> </ PreferenceScreen> <? xml version = "1.0" encoding = "utf-8"?> <PreferenceScreen android: title = "@ string / display_settings" xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: settings = "http://schemas.android.com/apk/res/com.android.settings"> <com.android.settings.BrightnessPreference android: title = "@ string / brightness" android: key = "brightness" android: dialogTitle = "@ string / brightness" /> <PreferenceScreen android: title = "@ string / wallpaper_settings_title" android: key = "wallpaper" android: fragment = "com.android.settings.WallpaperTypeSettings" /> <CheckBoxPreference android: title = "@ string / accelerometer_title" android: key = "accelerometer" /> <ListPreference android: persistent = "false" android: entries = "@ array / status_bar_auto_hide_entries" android: title = "@ string / status_bar_auto_hide_title" android: key = "status_bar_auto_hide" android: summary = "@ string / status_bar_auto_hide_summary_hide" android: summary = "@ string / status_bar_auto_hide_slow" @ array / status_bar_auto_hide_values ​​"/> <ListPreference android: persistent = "false" android: entries = "@ array / screen_timeout_entries" android: title = "@ string / screen_timeout" android: key = "screen_timeout" android: summary = "@ string / screen_timeout_summary" android: entryValues ​​= " @ array / screen_timeout_values ​​"/> <ListPreference android: persistent = "false" android: entries = "@ array / outputmode_entries" android: title = "@ string / tv_output_mode" android: key = "output_mode" android: summary = "@ string / tv_output_mode_summary" android: entryValues ​​= " @ array / outputmode_values ​​"/> <Preference android: persistent = "false" android: title = "@ string / display_position" android: key = "display_position" android: summary = "@ string / display_position_summary" /> <ListPreference android: entries = "@ array / entries_font_size" android: title = "@ string / title_font_size" android: key = "font_size" android: summary = "@ string / summary_font_size" android: dialogTitle = "@ string / dialog_title_font_size" android: entryValues ​​= "@ array / entryvalues_font_size" /> <CheckBoxPreference android: persistent = "false" android: title = "@ string / notification_pulse_title" android: key = "notification_pulse" /> </ PreferenceScreen> ... <string-array name = "hdmi_spdif_entries"> <item>PCM</ item> <item>RAW</ item> </ string-array> <string-array name = "hdmi_spdif_values"> <item>0</ item> <item>1</ item> </ string-array> <string-array name = "input_method_selector_titles"> <item>@ string / input_method_selector_show_automatically_title</ item> <item>@ string / input_method_selector_always_show_title</ item> <item>@ string / input_method_selector_always_hide_title</ item> </ string-array> <string-array name = "input_method_selector_values"> <item>@ string / input_method_selector_show_automatically_value</ item> <item>@ string / input_method_selector_always_show_value</ item> <item>@ string / input_method_selector_always_hide_value</ item> </ string-array> <string-array name = "status_bar_auto_hide_entries"> <item>Normal screeen mode</ item> <item>Full screeen mode</ item> <item>Smart screen mode</ item> </ string-array> <string-array name = "status_bar_auto_hide_values"> <item>0</ item> <item>1</ item> <item>2</ item> </ string-array> </ resources> ... <string-array name = "accelerometer_summaries"> <item>Accelerometer uses the default coordinate system.</ item> <item>Accelerometer uses a system for some games.</ item> </ string-array> <string-array name = "display_mode_list_entries"> <item>center</ item> </ string-array> <string-array name = "display_mode_list_values"> <item>center</ item> </ string-array> <string-array name = "input_method_selector_titles"> <item>@ string / input_method_selector_show_automatically_title</ item> <item>@ string / input_method_selector_always_show_title</ item> <item>@ string / input_method_selector_always_hide_title</ item> </ string-array> <string-array name = "input_method_selector_values"> <item>@ string / input_method_selector_show_automatically_value</ item> <item>@ string / input_method_selector_always_show_value</ item> <item>@ string / input_method_selector_always_hide_value</ item> </ string-array> <string-array name = "status_bar_auto_hide_entries"> <item>Normal screeen mode</ item> <item>Full screeen mode</ item> <item>Smart screen mode</ item> </ string-array> <string-array name = "status_bar_auto_hide_values"> <item>0</ item> <item>1</ item> <item>2</ item> </ string-array> </ resources> ... <string name = "display_position_dialog_title">Notice</ string> <string name = "display_position_set_confirm_dialog">Display position has been set. Are you confirm to save it and reboot?</ string> <string name = "display_position_dialog_no">No</ string> <string name = "display_position_set_default_confirm_dialog">Display position has been set to default values. Are you confirm to save it and reboot?</ string> <string name = "hdmi_yuv_switch_title">hdmi_yuv_switch_title</ string> <string name = "hdmi_yuv_switch_summary">hdmi_yuv_switch_summary</ string> <string name = "hdmi_settings">HDMI</ string> <string name = "hdmi_dual_disp">Enable dual display</ string> <string name = "hdmi_dual_disp_on">Dual display ON</ string> <string name = "hdmi_dual_disp_off">Dual display OFF</ string> <string name = "hdmi_spdif">Set SPDIF</ string> <string name = "status_bar_auto_hide_title">Fullscreen mode</ string> <string name = "status_bar_auto_hide_summary">To hide the system bar</ string> </ resources> ... <string name = "eth_dev_summaryoff">DISCONNECTED</ string> <string name = "eth_dev_summaryon">CONNECTED - USED DEVICE:</ string> <string name = "eth_link_status">Link Status</ string> <string name = "eth_link_mode">Link Mode</ string> <string name = "eth_ip_mode">IP Mode:</ string> <string name = "eth_dhcp_mode">DHCP</ string> <string name = "eth_manual_mode">MANUAL</ string> <string name = "eth_ok">Ok</ string> <string name = "eth_cancel">Cancel</ string> <string name = "eth_advand">Advand</ string> <string name = "eth_message">Are you apply this device?</ string> <string name = "smart_brightness_title">Smart backlight</ string> <string name = "smart_brightness_summary">Auto adjust the backlight.</ string> <string name = "smart_brightness_preview">Preview mode</ string> <string name = "status_bar_auto_hide_title">Fullscreen mode</ string> <string name = "status_bar_auto_hide_summary">To hide the system bar</ string> </ resources> ... <public type = "array" name = "position_entries" id = "0x7f070043" /> <public type = "array" name = "outputmode_entries" id = "0x7f070044" /> <public type = "array" name = "outputmode_values" id = "0x7f070045" /> <public type = "array" name = "hdmi_spdif_entries" id = "0x7f070046" /> <public type = "array" name = "hdmi_spdif_values" id = "0x7f070047" /> <public type = "array" name = "input_method_selector_titles" id = "0x7f070048" /> <public type = "array" name = "input_method_selector_values" id = "0x7f070049" /> <public type = "array" name = "status_bar_auto_hide_entries" id = "0x7f07004a" /> <public type = "array" name = "status_bar_auto_hide_values" id = "0x7f07004b" /> <public type = "id" name = "horizontal" id = "0x7f080000" /> <public type = "id" name = "vertical" id = "0x7f080001" /> ... another part by type ... <public type = "string" name = "hdmi_dual_disp" id = "0x7f0b060a" /> <public type = "string" name = "hdmi_dual_disp_on" id = "0x7f0b060b" /> <public type = "string" name = "hdmi_dual_disp_off" id = "0x7f0b060c" /> <public type = "string" name = "hdmi_spdif" id = "0x7f0b060d" /> <public type = "string" name = "status_bar_auto_hide_title" id = "0x7f0b0611" /> <public type = "string" name = "status_bar_auto_hide_summary" id = "0x7f0b0612" /> <public type = "string" name = "vibrate_title" id = "0x7f0b060e" /> <public type = "string" name = "system_tutorial_list_item_title" id = "0x7f0b060f" /> <public type = "string" name = "system_tutorial_list_item_summary" id = "0x7f0b0610" /> <public type = "dimen" name = "device_memory_usage_button_width" id = "0x7f0c0000" /> ... ... <public type = "array" name = "accelerometer_entries" id = "0x7f070041" /> <public type = "array" name = "accelerometer_values" id = "0x7f070042" /> <public type = "array" name = "accelerometer_summaries" id = "0x7f070043" /> <public type = "array" name = "display_mode_list_entries" id = "0x7f070044" /> <public type = "array" name = "display_mode_list_values" id = "0x7f070045" /> <public type = "array" name = "input_method_selector_titles" id = "0x7f070046" /> <public type = "array" name = "input_method_selector_values" id = "0x7f070047" /> <public type = "array" name = "status_bar_auto_hide_entries" id = "0x7f070048" /> <public type = "array" name = "status_bar_auto_hide_values" id = "0x7f070049" /> <public type = "id" name = "horizontal" id = "0x7f080000" /> <public type = "id" name = "vertical" id = "0x7f080001" /> <public type = "id" name = "all_apps" id = "0x7f080002" /> <public type = "id" name = "list_view" id = "0x7f080003" /> <public type = "id" name = "app_icon" id = "0x7f080004" /> ... <public type = "string" name = "smart_brightness_title" id = "0x7f0b0612" /> <public type = "string" name = "smart_brightness_summary" id = "0x7f0b0613" /> <public type = "string" name = "smart_brightness_preview" id = "0x7f0b0614" /> <public type = "string" name = "status_bar_auto_hide_title" id = "0x7f0b0615" /> <public type = "string" name = "status_bar_auto_hide_summary" id = "0x7f0b0616" /> <public type = "string" name = "vibrate_title" id = "0x7f0b060f" /> <public type = "string" name = "system_tutorial_list_item_title" id = "0x7f0b0610" /> <public type = "string" name = "system_tutorial_list_item_summary" id = "0x7f0b0611" /> <public type = "dimen" name = "device_memory_usage_button_width" id = "0x7f0c0000" /> <public type = "dimen" name = "device_memory_usage_button_height" id = "0x7f0c0001" /> ... originalDisplaySettings.smali.txt(53.2 KB) ... # static fields ... .field private static FreeScaleOsd1File: Ljava / lang / String; .field private static final KEY_STATUS_BAR_AUTO_HIDE: Ljava / lang / String; .field private static PpscalerFile: Ljava / lang / String; ... # instance fields ... .field private mScreenTimeoutPreference: Landroid / preference / ListPreference; .field private mStatusbarAutohide: Landroid / preference / ListPreference; .field requestFocusHandler: Landroid / os / Handler; ... # direct methods ... .method private updateState () V .registers 2 .prologue .line 356 invoke-direct {p0}, Lcom / android / settings / DisplaySettings; ->updateAccelerometerRotationCheckbox () V .line 357 iget-object v0, p0, Lcom / android / settings / DisplaySettings; ->mFontSizePref: Landroid / preference / ListPreference; invoke-virtual {p0, v0}, Lcom / android / settings / DisplaySettings; ->readFontSizePreference (Landroid / preference / ListPreference;) V .line 358 return-void .end method .method private updateStatusbarAutohideSummary (Ljava / lang / Object;) V .registers 7 .parameter "value" .prologue invoke-virtual {p0}, Lcom / android / settings / DisplaySettings; ->getResources () Landroid / content / res / Resources; move-result-object v3 const v4,0x7f07004a invoke-virtual {v3, v4}, Landroid / content / res / Resources; ->getTextArray (I) [Ljava / lang / CharSequence; move-result-object v1 .local v1, summaries: [Ljava / lang / CharSequence; iget-object v3, p0, Lcom / android / settings / DisplaySettings; ->mStatusbarAutohide: Landroid / preference / ListPreference; invoke-virtual {v3}, Landroid / preference / ListPreference; ->getEntryValues ​​() [Ljava / lang / CharSequence; move-result-object v2 .local v2, values: [Ljava / lang / CharSequence; const / 4 v0, 0x0 .local v0, i: I : goto_12 array-length v3, v2 if-ge v0, v3,: cond_24 aget-object v3, v2, v0 invoke-virtual {v3, p1}, Ljava / lang / Object; ->equals (Ljava / lang / Object;) Z move-result v3 if-eqz v3,: cond_25 iget-object v3, p0, Lcom / android / settings / DisplaySettings; ->mStatusbarAutohide: Landroid / preference / ListPreference; aget-object v4, v1, v0 invoke-virtual {v3, v4}, Landroid / preference / ListPreference; ->setSummary (Ljava / lang / CharSequence;) V : cond_24 return-void : cond_25 add-int / lit8 v0, v0, 0x1 goto: goto_12 .end method .method private updateTimeoutPreferenceDescription (J) V .registers 16 .parameter "currentTimeout" .prologue const-wide / 16 v10, 0x1 .line 240 ... .method public onCreate (Landroid / os / Bundle;) V .registers 16 .parameter "savedInstanceState" .prologue const / 4 v8, 0x1 const / 4 v9, 0x0 .line 155 invoke-super {p0, p1}, Lcom / android / settings / SettingsPreferenceFragment; ->onCreate (Landroid / os / Bundle;) V .line 156 invoke-virtual {p0}, Lcom / android / settings / DisplaySettings; ->getActivity () Landroid / app / Activity; move-result-object v7 invoke-virtual {v7}, Landroid / app / Activity; ->getContentResolver () Landroid / content / ContentResolver; move-result-object v4 .line 158 .local v4, resolver: Landroid / content / ContentResolver; const v7, 0x7f05000f invoke-virtual {p0, v7}, Lcom / android / settings / DisplaySettings; ->addPreferencesFromResource (I) V .line 160 const-string v7, "accelerometer" invoke-virtual {p0, v7}, Lcom / android / settings / DisplaySettings; ->findPreference (Ljava / lang / CharSequence;) Landroid / preference / Preference; move-result-object v7 check-cast v7, Landroid / preference / CheckBoxPreference; iput-object v7, p0, Lcom / android / settings / DisplaySettings; ->mAccelerometer: Landroid / preference / CheckBoxPreference; .line 161 iget-object v7, p0, Lcom / android / settings / DisplaySettings; ->mAccelerometer: Landroid / preference / CheckBoxPreference; invoke-virtual {v7, v9}, Landroid / preference / CheckBoxPreference; ->setPersistent (Z) V const / 4 v10, 0x0 invoke-virtual {v7, v10}, Landroid / preference / CheckBoxPreference; ->setPersistent (Z) V const-string v7, "status_bar_auto_hide" invoke-virtual {p0, v7}, Lcom / android / settings / DisplaySettings; ->findPreference (Ljava / lang / CharSequence;) Landroid / preference / Preference; move-result-object v7 check-cast v7, Landroid / preference / ListPreference; iput-object v7, p0, Lcom / android / settings / DisplaySettings; ->mStatusbarAutohide: Landroid / preference / ListPreference; const-string v7, "status_bar_auto_hide" const / 4 v11, 0x1 invoke-static {v4, v7, v11}, Landroid / provider / Settings $ System; ->getInt (Landroid / content / ContentResolver; Ljava / lang / String; I) I move-result v10 invoke-static {v10}, Ljava / lang / String; ->valueOf (I) Ljava / lang / String; move-result-object v10 iget-object v7, p0, Lcom / android / settings / DisplaySettings; ->mStatusbarAutohide: Landroid / preference / ListPreference; invoke-virtual {v7, v10}, Landroid / preference / ListPreference; ->setValue (Ljava / lang / String;) V iget-object v7, p0, Lcom / android / settings / DisplaySettings; ->mStatusbarAutohide: Landroid / preference / ListPreference; invoke-virtual {v7, p0}, Landroid / preference / ListPreference; ->setOnPreferenceChangeListener (Landroid / preference / Preference $ OnPreferenceChangeListener;) V invoke-direct {p0, v10}, Lcom / android / settings / DisplaySettings; ->updateStatusbarAutohideSummary (Ljava / lang / Object;) V .line 163 const-string v7, "screen_timeout" invoke-virtual {p0, v7}, Lcom / android / settings / DisplaySettings; ->findPreference (Ljava / lang / CharSequence;) Landroid / preference / Preference; move-result-object v7 check-cast v7, Landroid / preference / ListPreference; iput-object v7, p0, Lcom / android / settings / DisplaySettings; ->mScreenTimeoutPreference: Landroid / preference / ListPreference; .line 164 const-string v7, "screen_off_timeout" ... .method public onPreferenceChange (Landroid / preference / Preference; Ljava / lang / Object;) Z .locals 7 .parameter .parameter .prologue const / 4 v6, 0x2 const / 4 v5, 0x1 .line 414 invoke-virtual {p1}, Landroid / preference / Preference; ->getKey () Ljava / lang / String; move-result-object v2 .line 415 .local v2, key: Ljava / lang / String; const-string v0, "status_bar_auto_hide" invoke-virtual {v0, v2}, Ljava / lang / String; ->equals (Ljava / lang / Object;) Z move-result v0 if-eqz v0,: cond_5 move-object v0, p2 check-cast v0, Ljava / lang / String; invoke-static {v0}, Ljava / lang / Integer; ->parseInt (Ljava / lang / String;) I move-result v1 invoke-virtual {p0}, Lcom / android / settings / DisplaySettings; ->getContentResolver () Landroid / content / ContentResolver; move-result-object v0 const-string v4, "status_bar_auto_hide" invoke-static {v0, v4, v1}, Landroid / provider / Settings $ System; ->putInt (Landroid / content / ContentResolver; Ljava / lang / String; I) Z invoke-direct {p0, p2}, Lcom / android / settings / DisplaySettings; ->updateStatusbarAutohideSummary (Ljava / lang / Object;) V goto / 16: goto_2 : cond_5 const-string v0, "screen_timeout" invoke-virtual {v0, v2}, Ljava / lang / String; ->equals (Ljava / lang / Object;) Z move-result v0 if-eqz v0,: cond_0 move-object v0, p2 ... R.smali .class public final Lcom / android / settings / R; .super ljava / lang / Object; .source "R.java" # annotations .annotation system Ldalvik / annotation / MemberClasses; value = { Lcom / android / settings / R $ styleable ;, Lcom / android / settings / R $ string ;, Lcom / android / settings / R $ array; } .end annotation # direct methods .method public constructor<init>() V .registers 1 .prologue .line 10 invoke-direct / range {p0 .. p0}, Ljava / lang / Object; -><init>() V return-void .end method .class public final Lcom / android / settings / R $ array; .super ljava / lang / Object; .source "R.java" # annotations .annotation system Ldalvik / annotation / EnclosingClass; value = Lcom / android / settings / R; .end annotation .annotation system Ldalvik / annotation / InnerClass; accessFlags = 0x19 name = "array" .end annotation # static fields .field public static final status_bar_auto_hide_entries: I = 0x7f070048 .field public static final status_bar_auto_hide_values: I = 0x7f070049 # direct methods .method public constructor<init>() V .registers 1 .prologue .line 11 invoke-direct {p0}, Ljava / lang / Object; -><init>() V return-void .end method .class public final Lcom / android / settings / R $ string; .super ljava / lang / Object; .source "R.java" # annotations .annotation system Ldalvik / annotation / EnclosingClass; value = Lcom / android / settings / R; .end annotation .annotation system Ldalvik / annotation / InnerClass; accessFlags = 0x19 name = "string" .end annotation # static fields .field public static final status_bar_auto_hide_summary: I = 0x7f0b0612 .field public static final status_bar_auto_hide_title: I = 0x7f0b0611 # direct methods .method public constructor<init>() V .registers 1 .prologue .line 1637 invoke-direct {p0}, Ljava / lang / Object; -><init>() V return-void .end method originalPhoneWindowManager.smali.txt(346.75 KB) header1 ... # static fields .. .field static final ENABLE_CAR_DOCK_HOME_CAPTURE: Z = true .field static final ENABLE_DESK_DOCK_HOME_CAPTURE: Z = false .field static final FULLSCREEN_HIDESTATUSBAR: Z = true .field static final HIDDEN_NAV_CONSUMER_LAYER: I = 0x18 .field static final INPUT_METHOD_DIALOG_LAYER: I = 0xa .. .method public finishAnimationLw () I ... .line 2490 iget-boolean v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mStatusBarCanHide: Z if-nez v5,: cond_9e iget-boolean v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mHdmiPlugged: Z if-nez v5,: cond_9e const-string v5, "tv.hideStatusBar.enable" invoke-static {v5, v4}, Landroid / os / SystemProperties; ->getBoolean (Ljava / lang / String; Z) Z move-result v5 if-nez v5,: cond_9e const-string v5, "vplayer.hideStatusBar.enable" invoke-static {v5, v4}, Landroid / os / SystemProperties; ->getBoolean (Ljava / lang / String; Z) Z move-result v5 if-nez v5,: cond_9e const / 4 v4, 0x1 # possible without this page iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mContext: Landroid / content / Context; invoke-virtual {v5}, Landroid / content / Context; ->getContentResolver () Landroid / content / ContentResolver; move-result-object v5 const-string v6, "status_bar_auto_hide" invoke-static {v5, v6, v4}, Landroid / provider / Settings $ System; ->getInt (Landroid / content / ContentResolver; Ljava / lang / String; I) I move-result v5 if-nez v5,: cond_9e # can be omitted, if v5 is not 0, the code after the .line 2495 line will start automatically if-eqz v5,: cond_2a .line 2495 : cond_9e iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mStatusBar: Landroid / view / WindowManagerPolicy $ WindowState; invoke-interface {v5, v3}, Landroid / view / WindowManagerPolicy $ WindowState; ->hideLw (Z) Z move-result v5 if-eqz v5,: cond_2a .line 2496 or-int / lit8 v0, v0, 0x1 ... ANDROID_firmware_tool_v1.5 small jamb (only I can) if you choose to code apk dalvik, the odex file is apk 0 kb, you can put apk from deodexed instead, open it with apk, delete the dex class. (The file android.policy.jar with the odex file, had to be edited after editing, otherwise the operating system didn’t load further android) ANDROID_firmware_tool_v1.5 settings 80 Version APKTOOL: 1.4.3 81 SMALI Version: 1.3.4 82 API level: -a 15 83 BootClassPath: Freelander_PD20_4.0.3.bat 831 Get BootClassPath from Phone 84 aapt version: aapt_r20 85 De / compiler for classes.dex: smali 86 Run zipalign when building: yes 87 Using registers in backsmali: -p- and -v- 88 Save original AndroidManifest: yes The Settings.apk file from the link above also starts up, checked for c91 upgrate 4.0.3, if you replace (by opening in the archiver) AndroidManifest.xml and the META-INF folder with 3 files inside the manifest and META-INF from Settings .apk, cat taken from the device (firmware) framework + jarorigi_frame.rar(12.52 MB) in games, mx player hides the status bar automatically and restores when exiting (like on andr 2.3), but the fullscreen mod mode in the settings does not remove the bottom line, works like a smart mod mode only in games and applications, the cat is asked for the full screen, click nose, (I don’t understand programming, it’s a miracle that it worked) in android.policy.jar in the \ smali \ com \ android \ internal \ policy \ impl \ PhoneWindowManager.smali file which part of the code sees and enables fullscreen mode if it is selected in settings thanks Thank you all turned out ... method public finishAnimationLw () I .registers 8 .prologue const / 4 v4, 0x0 const / 4 v3, 0x1 .line 2458 const / 4 v0, 0x0 .line 2459 .local v0, changes: I const / 4 v2, 0x0 .line 2461 .local v2, topIsFullscreen: Z iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mTopFullscreenOpaqueWindowState: Landroid / view / WindowManagerPolicy $ WindowState; if-eqz v5,: cond_66 iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mTopFullscreenOpaqueWindowState: Landroid / view / WindowManagerPolicy $ WindowState; invoke-interface {v5}, Landroid / view / WindowManagerPolicy $ WindowState; ->getAttrs () Landroid / view / WindowManager $ LayoutParams; move-result-object v1 .line 2465 .local v1, lp: Landroid / view / WindowManager $ LayoutParams; : goto_e iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mStatusBar: Landroid / view / WindowManagerPolicy $ WindowState; if-eqz v5,: cond_2a .line 2466 const-string v5, "sys.statusbar.forcehide" invoke-static {v5, v4}, Landroid / os / SystemProperties; ->getBoolean (Ljava / lang / String; Z) Z move-result v5 if-ne v5, v3,: cond_6a .line 2467 iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mStatusBar: Landroid / view / WindowManagerPolicy $ WindowState; invoke-interface {v5, v4}, Landroid / view / WindowManagerPolicy $ WindowState; ->hideLw (Z) Z .line 2468 iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mTopFullscreenOpaqueWindowState: Landroid / view / WindowManagerPolicy $ WindowState; if-eqz v5,: cond_2a .line 2469 iget v5, v1, Landroid / view / WindowManager $ LayoutParams; ->flags: I and-int / lit16 v5, v5, 0x400 if-eqz v5,: cond_68 move v2, v3 .line 2517 : cond_2a : goto_2a iput-boolean v2, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mTopIsFullscreen: Z .line 2521 iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mKeyguard: Landroid / view / WindowManagerPolicy $ WindowState; if-eqz v5,: cond_58 .line 2523 iget-boolean v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mDismissKeyguard: Z if-eqz v5,: cond_c2 iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mKeyguardMediator: Lcom / android / internal / policy / impl / KeyguardViewMediator; invoke-virtual {v5}, Lcom / android / internal / policy / impl / KeyguardViewMediator; ->isSecure () Z move-result v5 if-nez v5,: cond_c2 .line 2524 iget-object v4, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mKeyguard: Landroid / view / WindowManagerPolicy $ WindowState; invoke-interface {v4, v3}, Landroid / view / WindowManagerPolicy $ WindowState; ->hideLw (Z) Z move-result v3 if-eqz v3,: cond_46 .line 2525 or-int / lit8 v0, v0, 0x7 .line 2529 : cond_46 iget-object v3, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mKeyguardMediator: Lcom / android / internal / policy / impl / KeyguardViewMediator; invoke-virtual {v3}, Lcom / android / internal / policy / impl / KeyguardViewMediator; ->isShowing () Z move-result v3 if-eqz v3,: cond_58 .line 2530 iget-object v3, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mHandler: Landroid / os / Handler; new-instance v4, Lcom / android / internal / policy / impl / PhoneWindowManager $ 11; invoke-direct {v4, p0}, Lcom / android / internal / policy / impl / PhoneWindowManager $ 11; -><init>(Lcom / android / internal / policy / impl / PhoneWindowManager;) V invoke-virtual {v3, v4}, Landroid / os / Handler; ->post (Ljava / lang / Runnable;) Z .line 2553 : cond_58 : goto_58 invoke-direct {p0}, Lcom / android / internal / policy / impl / PhoneWindowManager; ->updateSystemUiVisibilityLw () I move-result v3 and-int / lit8 v3, v3, 0x2 if-eqz v3,: cond_62 .line 2556 or-int / lit8 v0, v0, 0x1 .line 2560 : cond_62 invoke-direct {p0}, Lcom / android / internal / policy / impl / PhoneWindowManager; ->updateLockScreenTimeout () V .line 2561 return v0 .line 2461 .end local v1 #lp: Landroid / view / WindowManager $ LayoutParams; : cond_66 const / 4 v1,0x0 goto: goto_e .restart local v1 #lp: Landroid / view / WindowManager $ LayoutParams; : cond_68 move v2, v4 .line 2469 goto: goto_2a .line 2474 : cond_6a iget-boolean v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mForceStatusBar: Z if-eqz v5,: cond_79 .line 2476 iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mStatusBar: Landroid / view / WindowManagerPolicy $ WindowState; invoke-interface {v5, v3}, Landroid / view / WindowManagerPolicy $ WindowState; ->showLw (Z) Z move-result v5 if-eqz v5,: cond_2a or-int / lit8 v0, v0, 0x1 goto: goto_2a .line 2477 : cond_79 iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mTopFullscreenOpaqueWindowState: Landroid / view / WindowManagerPolicy $ WindowState; if-eqz v5,: cond_2a .line 2484 iget v5, v1, Landroid / view / WindowManager $ LayoutParams; ->flags: I and-int / lit16 v5, v5, 0x400 if-eqz v5,: cond_b4 move v2, v3 .line 2489 : goto_84 # if-eqz v2,: cond_b6 # commented out # .line 2490 # commented out iget-boolean v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mStatusBarCanHide: Z if-nez v5,: cond_9e iget-boolean v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mHdmiPlugged: Z if-nez v5,: cond_9e const-string v5, "tv.hideStatusBar.enable" invoke-static {v5, v4}, Landroid / os / SystemProperties; ->getBoolean (Ljava / lang / String; Z) Z move-result v5 if-nez v5,: cond_9e const-string v5, "vplayer.hideStatusBar.enable" invoke-static {v5, v4}, Landroid / os / SystemProperties; ->getBoolean (Ljava / lang / String; Z) Z move-result v5 # if-eqz v5,: cond_2a # commented out, explanation of the command - if v5 is equivalent to zero go to the label: cond_2a # added if-nez v5,: cond_9e # if v5 is not 0 go to: cond_9e iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mContext: Landroid / content / Context; # copied from original file invoke-virtual {v5}, Landroid / content / Context; ->getContentResolver () Landroid / content / ContentResolver; # copied from original file move-result-object v5 # copied from original file const-string v6, "status_bar_auto_hide" # copied from the original file invoke-static {v5, v6, v4}, Landroid / provider / Settings $ System; ->getInt (Landroid / content / ContentResolver; Ljava / lang / String; I) I # copied from the original file move-result v5 # copied from original file if-eqz v5,: cond_b6 # copied from the original file and modified (adapted) if-nez v2,: cond_9e # copied from the original file and modified (adapted) const / 4 v2, 0x1 # copied from the original file and modified (adapted) if-ne v2, v5,: cond_b6 # copied from the original file and modified (adapted) # end of added .line 2495 : cond_9e iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mStatusBar: Landroid / view / WindowManagerPolicy $ WindowState; invoke-interface {v5, v3}, Landroid / view / WindowManagerPolicy $ WindowState; ->hideLw (Z) Z move-result v5 if-eqz v5,: cond_2a .line 2496 or-int / lit8 v0, v0, 0x1 .line 2498 iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mHandler: Landroid / os / Handler; new-instance v6, Lcom / android / internal / policy / impl / PhoneWindowManager $ 10; invoke-direct {v6, p0}, Lcom / android / internal / policy / impl / PhoneWindowManager $ 10; -><init>(Lcom / android / internal / policy / impl / PhoneWindowManager;) V invoke-virtual {v5, v6}, Landroid / os / Handler; ->post (Ljava / lang / Runnable;) Z goto / 16: goto_2a : cond_b4 move v2, v4 .line 2484 goto: goto_84 .line 2511 : cond_b6 iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mStatusBar: Landroid / view / WindowManagerPolicy $ WindowState; invoke-interface {v5, v3}, Landroid / view / WindowManagerPolicy $ WindowState; ->showLw (Z) Z move-result v5 if-eqz v5,: cond_2a or-int / lit8 v0, v0, 0x1 goto / 16: goto_2a .line 2536 : cond_c2 iget-boolean v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mHideLockScreen: Z if-eqz v5,: cond_d6 .line 2537 iget-object v4, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mKeyguard: Landroid / view / WindowManagerPolicy $ WindowState; invoke-interface {v4, v3}, Landroid / view / WindowManagerPolicy $ WindowState; ->hideLw (Z) Z move-result v4 if-eqz v4,: cond_d0 .line 2538 or-int / lit8 v0, v0, 0x7 .line 2542 : cond_d0 iget-object v4, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mKeyguardMediator: Lcom / android / internal / policy / impl / KeyguardViewMediator; invoke-virtual {v4, v3}, Lcom / android / internal / policy / impl / KeyguardViewMediator; ->setHidden (Z) V goto: goto_58 .line 2544 : cond_d6 iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mKeyguard: Landroid / view / WindowManagerPolicy $ WindowState; invoke-interface {v5, v3}, Landroid / view / WindowManagerPolicy $ WindowState; ->showLw (Z) Z move-result v3 if-eqz v3,: cond_e0 .line 2545 or-int / lit8 v0, v0, 0x7 .line 2549 : cond_e0 iget-object v3, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mKeyguardMediator: Lcom / android / internal / policy / impl / KeyguardViewMediator; invoke-virtual {v3, v4}, Lcom / android / internal / policy / impl / KeyguardViewMediator; ->setHidden (Z) V goto / 16: goto_58 .end method .. Simplified way to enable automatic full-screen mode(comment out the line. Android 4.0.3)teams (will work in applications that ask for full screen). Find lines of code in the PhoneWindowManager.smali file (the file is extracted from the deodexed and parsed /system/framework/android.policy.jar, search after the line .method public finishAnimationLw () lines like : cond_9e # these lines may differ slightly iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mStatusBar: Landroid / view / WindowManagerPolicy $ WindowState; invoke-interface {v5, v3}, Landroid / view / WindowManagerPolicy $ WindowState; ->hideLw (Z) Z iget-boolean v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mStatusBarCanHide: Z if-nez v5,: cond_9e iget-boolean v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mHdmiPlugged: Z if-nez v5,: cond_9e const-string v5, "tv.hideStatusBar.enable" invoke-static {v5, v4}, Landroid / os / SystemProperties; ->getBoolean (Ljava / lang / String; Z) Z move-result v5 if-nez v5,: cond_9e const-string v5, "vplayer.hideStatusBar.enable" invoke-static {v5, v4}, Landroid / os / SystemProperties; ->getBoolean (Ljava / lang / String; Z) Z move-result v5 # if-eqz v5,: cond_2a # comment out with a line # check the line to 0 (if-eqz) so that the transition to the label can not be completed: cond_2a (with v5 = 0), and the code containing the command is>hideLw (enable full screen mode on request) see below. It was the execution of the code if the stock video player is active, the execution was anyway .line 2495 : cond_9e iget-object v5, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mStatusBar: Landroid / view / WindowManagerPolicy $ WindowState; invoke-interface {v5, v3}, Landroid / view / WindowManagerPolicy $ WindowState; ->hideLw (Z) Z # in this line is the first value of the brackets v5, commented the check on line 0 with v5, if it were in brackets, for example v4, then you would comment v4, or try commenting any check on 0 before the line containing the hideLw command move-result v5 if-eqz v5,: cond_2a If the android.policy files on the device are two /system/framework/android.policy.jar and /system/framework/android.policy.odex (cloaked firmware), the android.policy.jar file needs to be crammed (described under the first spoiler first) . For coding, you need root, if it is there, but the program still swears that there are no rights, find (for example, in the programs above) create the adb file next to the name.bat file, enter the adb root line there, connect the device, run the file Post has been editedDimar - 06.11.15, 21:26 Reason for editing: * |
Message#23 01.02.13, 16:43 | |||||
Local [offline] Group: Friendssavagemessiahzine.com Messages 250 Check in: 15.09.12 Samsung Galaxy S3 GT-I9300 Reputation: 71 | Creating your own color scheme for the system - how I do it!) (The way to make your device unique without installing heavy programs on the phone on the example of framework-res.apk) Description ------------------------------------------------------- Perhaps there are easier ways to edit but I did not find them, but I partially came to this method myself, partly in some moments helped mesavagemessiahzine.comand separate users, thanks to them! --------------------------------------------------------------------------- The complexity of the whole process: The instructions came out very long and it may seem that everything is very difficult, in fact it is not. If I could figure it out, I think you will be able to do it (in fact only the simplest computer knowledge and attentiveness are needed), I wrote this manual longer than I painted my system) Introductory: As everyone knows, the androyd is quite a flexible system that allows you to customize everything the way you want it, and not how Steve Jobs or Steve Ballmer invented, for example. I generally like the design of the system, but I wanted to paint the system in those colors that I like, making my phone unique and without having to install third-party programs on the phone, thereby making the system heavier. Instruction 0. Required programs Some actions can be done with the help of analogs, but I got used to these programs, so if you understand it - at your discretion. Java jdk (Link to off site) ApkTools(You can get here:Editing framework-res.apk (Post # 6208431) ) Adobe Photoshop(It is desirable to have a completely minimal experience) Advanced Batch Converter(ABC_5.8.rar(6.84 MB) - thanks nastor'u) Winrar 1. Unpacking the apk file 1.0InstallJava jdk 1.1Unpack the archiveApkTools.rarto the root of the diskC: \and open the folderApkTools 1.2Copy the file to this folderframework-res.apkfrom your firmware (or the file you want to edit, for example SystemUI.apk \ lidroid-res.apk) 1.3Drag the fileframework-res.apkon fileapktool-if.cmd(This operation must be done once for each firmware) 1.4Drag the fileframework-res.apkon fileapktool-d.cmdA folder with the name of your apk appears (in our case, framework-res). In this folder is our parsed file, the graphics in which we will edit. 1.5Open the main folder with graphicsC: \ ApkTools \ framework-res \ res \ drawable-xhdpi(or drawable-hdpi), we see a lot of “.png†files, sort the files by type and copy all the graphics into another folder (for example, you can create a folder on the desktop) Note:I usually create a framework-res.apk folder on my desktop and already have drawable-xhdpi and other subfolders in it so as not to get confused and copy the graphics I want to edit PS:Unpacking in ApkTools (and not just a simple winrar) is necessary in order to correctly extract graphics that have the format ".9.png" 2. Translation of graphics from index to normal. Most of the graphics are indexed, i.e. not editable in normal mode in Photoshop, it must be transferred to normal mode, for editing. PS:This action can be done, as I describe, or through bat scripts that are on this forum, but I used to do it in the programAdvanced Batch Converter (ABC), on her example and sign for everything. 2.0Run the programABC(it is portable, does not need to be installed) 2.1PushFile>>Batch mode. We expose everything as shown in the image below: 2.2In the top - the right field, open the folders with our .png pictures and click"Add all", on the left, after push"Start"and see how the program works. 2.3Now since we have several folders with graphics, you can click on completion"Delete everything"and then repeat point 2.2 again 3. Batch processing in Photoshop The most creative and interesting moment in the editing process. To begin with, in order to choose the right colors, take a couple of screenshots of the main points that apk is responsible for, which we are editing. If we are correcting system graphics (systems \ frame \ lib .. files), then just make screenshots of curtains, settings, sliders, etc. 3.1 - Color matching We select the color solution (at its sole discretion, I will tell you what I did). To do this, open the screenshots of your current design, if in the window "Layers" our background is listed as “Background†with a lock, renamed (to remove the lock ) - clicking 2 times on it. Now once again click 2 times on this layer, the “Layer Style†window will open. As shown in the image below - we select the color and other parameters. (I used“Color Overlay - Color†). Note: Keep in mind that after your overlays - black should remain black so that there are no problems with the “.9.png†files. PS: I also selected the contrast-brightness (Image-Correction-Brightness / Control.), Because I have on amold - the colors look more saturated than on the computer monitor. After you have chosen the colors, remember all the manipulations, save the screenshot image, for example, in jpg and drop it on the phone to see if the colors look good on the phone screen (it’s better if you have amold and you don’t want to get colors from a series of "tear-out eye") 3.2 From our folders on the desktop (drawable-hdpi, etc.), we delete pictures - we do not want to edit them (for example, pictures with weather icons, etc.) 3.3 - Creating a rule You have decided on the color solution, now you need to create a rule for automatic application of color changes in our pictures. To do this, copy to the desktop any “.png†picture from any folder with pictures (drawable ...), on which you can see some color, background and open it in Photoshop. Create a rule for the picture below: We close the picture from the desktop, the rule is created (you can delete the file from the desktop) 3.4 - Batch Processing We start the batch processing of graphics according to our rule (which we created): File>>Automation>>Batch processing Note 1: Sometimes there are such pngs in which Photoshop shuts down and cannot apply the rule (for example, empty pngs), for this you just need to delete such a picture and start batch processing for the remaining pictures (for example, by moving to another folder, so as not to mix with those already processed) Note2: For some graphic elements, it is better to select a color overlay separately (for example, for signal level icons, where it is necessary that the signal level is very different from the gray inactive signal field, or for switches in the curtain, when the inactive switches are gray and the active ones are colored.) PS: In general, there is already complete freedom to edit, you can handle anything in a package at your discretion [/ i] 4. Compress graphics Now we have all the png graphics of the color we need and it would be good to compress it, for this we need ABC (see point 2). The whole process is the same as in paragraph 2, with one exception - in the batch processing mode, you need to click "Options" (which is on the right) choose Filter "PAETH" , with this filter, the quality will not deteriorate, and the weight of the graphics will decrease by almost 2 times. 5. Packing apk file [i] We go almost to the finish line, it remains to prepare the entire schedule, put it in our apk. 5.1 Open the folder with the original graphics (C: \ ApkTools \ framework-res \ res \ drawable-xhdpi(or drawable-hdpi)). Now the main thing is to be careful not to confuse anything - we transfer all the finished graphics (with corrected colors) from the desktop to the original folders, when replacing them, we replace them. 5.2 Return to the folderC: \ ApkTools \and drag the folder "Framework-res" on file apktool-b.cmd . A command line window will open and something will write there if you did everything correctly and the original system apk is correct - there no mistakes written should not be. 5.3 Upon completion of this operation, in the folder"C: \ ApkTools \ framework-res"a folder will appear "Build \ apk" , passing on which we will again see familiar folders with graphics drawable-xhdpi and others. 5.4 Now open the original apk file with the archiver Winrar and move on to the folders with graphics (res \ drawable-hdpieg) 5.5 You should have open 2 windows on the screen - one with archiver from clause 5.4 and folder in explorer from point 5.3 (with the address “C: \ ApkTools \ framework-res \ build \ apk \ res \â€). In the explorer, open the subfolders with graphics, select all the png files and drag them to the appropriate folder in WinRar (To the question about compression, select WITHOUT COMPRESSION ) 5.6 Everything, our system apk is ready and you can put it in the phone. 5.7 MANDATORY BEFORE REPLACING IN THE PHONE - MAKE RESERVE COPIES (BEST IN CWM). T.K. SYSTEM FILES AND IF YOU DO SOMETHING NOT SO, THE PHONE MAY DOWNLOAD. All operations must be done carefully, then there will be no problems. According to this principle, I did everything from the 1st time right away with all the graphics in 3 system files and everything was loaded without any problems. 6. Signing apk If we edit the apk file of the program that we need to install after (for example, you want to change the apk file of whatsapp), everything is done the same way as with the system apk, only you need to sign the application (otherwise it will not be installed). How to do it - there are 2 options. 1st) Drag and drop apk file changed to fileSign.cmd , it will be signed and it will be possible to install it (BUT, according to my statistics, not all applications are signed and installed), so it’s better to do it according to option 2: 2nd) Download and unarchive the program “Apk_manager", Copy our ready apk to the folder"Place-apk-here-for-signing" , run “Script.batâ€, enter 16 and press Entr, the program is signed and now you can just put it on the phone and it will be installed. PS: Unfortunately, not all third-party programs can be edited, for example, with a client for reading.savagemessiahzine.comForum failed to replace the graphics - when unpacking \ packaging, a lot of errors fell out with the final phrase Aborted Acknowledgments sk0t - For ApkTools instructions nastor - For Photoshop Tips and ABC savagemessiahzine.comand other forum users)) Post has been editedDimar - 26.12.15, 18:16 -------------------- Hair color allows me to think ^^ ♦ Samsung Galaxy S3 ♦ MIUI v4.4.25 ♦ In Waiting, Xiaomi Mi4 ♦ | ||||
Message#24 01.02.13, 18:56 | |
^ _ ^ Nyaya ^ _ ^ [offline] Group: Friendssavagemessiahzine.com Messages 1167 Check in: 11.09.11 Honor 9 lite Reputation: 202 | How to make a lock screen in the style of Galaxy note original thread onXDA(but the author did not write there how to do it on an already installed firmware, so I thought of this point myself) huge thankssk0tfor assistance in editing smali andden339for finding an easier way to add files screenshots Instruction To successfully unpack and package the files, you must have framework-res.apk installed (if not, drag it to apktool-if.bat work with framework.jar 1.Parse it through ApkTools 2.We need the file \ smali \ com \ android \ internal \ widget \ multiwaveview \ MultiWaveView.smali If such a file is not found, then try to search in framework2.jar (if available) If there is no such file, then the lock screen will not be altered !!! 3.We are looking for a line in it .method private handleMove (Landroid / view / MotionEvent;) V 4.Next under this line you need to find invoke-direct {v0, v1, v2, v3}, Lcom / android / internal / widget / multiwaveview / MultiWaveView; ->switchToState (IFF) V There are a lot of such lines in this file, we need exactly this, which is after the line of their clause 3 Instead of v0, v1, v2, v3 you may have something else. 5. After it is necessary to insert move-object / from16 v0, p0 iget-object v0, v0, Lcom / android / internal / widget / multiwaveview / MultiWaveView; ->mOuterRing: Lcom / android / internal / widget / multiwaveview / TargetDrawable; sget-object v1, Lcom / android / internal / widget / multiwaveview / TargetDrawable; ->STATE_ACTIVE: [I invoke-virtual {v0, v1}, Lcom / android / internal / widget / multiwaveview / TargetDrawable; ->setState ([I) V it should work out invoke-direct {v0, v1, v2, v3}, Lcom / android / internal / widget / multiwaveview / MultiWaveView; ->switchToState (IFF) V move-object / from16 v0, p0 iget-object v0, v0, Lcom / android / internal / widget / multiwaveview / MultiWaveView; ->mOuterRing: Lcom / android / internal / widget / multiwaveview / TargetDrawable; sget-object v1, Lcom / android / internal / widget / multiwaveview / TargetDrawable; ->STATE_ACTIVE: [I invoke-virtual {v0, v1}, Lcom / android / internal / widget / multiwaveview / TargetDrawable; ->setState ([I) V 6.After the first invoke-direct {v0, v1, v2, v3}, Lcom / android / internal / widget / multiwaveview / MultiWaveView; ->switchToState (IFF) V should be the second same line, looking for it. I recommend at this stage not to use the search on the document, but to find it manually. A gap between them is about 300 lines After it we insert move-object / from16 v0, p0 iget-object v0, v0, Lcom / android / internal / widget / multiwaveview / MultiWaveView; ->mOuterRing: Lcom / android / internal / widget / multiwaveview / TargetDrawable; sget-object v1, Lcom / android / internal / widget / multiwaveview / TargetDrawable; ->STATE_INACTIVE: [I invoke-virtual {v0, v1}, Lcom / android / internal / widget / multiwaveview / TargetDrawable; ->setState ([I) V it should work invoke-direct {v0, v1, v2, v3}, Lcom / android / internal / widget / multiwaveview / MultiWaveView; ->switchToState (IFF) V move-object / from16 v0, p0 iget-object v0, v0, Lcom / android / internal / widget / multiwaveview / MultiWaveView; ->mOuterRing: Lcom / android / internal / widget / multiwaveview / TargetDrawable; sget-object v1, Lcom / android / internal / widget / multiwaveview / TargetDrawable; ->STATE_INACTIVE: [I invoke-virtual {v0, v1}, Lcom / android / internal / widget / multiwaveview / TargetDrawable; ->setState ([I) V 7.That's all, work with framework.jar is over. Putting it back through ApkTool file \ build \ apk \ classes.dex to move with the replacement of the original in the framework.jar 2. Work with framework-res.apk 1.Parse it through ApkTools 2.Add files from the archive to the disassembled framework-res observing the folder names framework-res.apk.rar(74.13 KB) 3.Next, open the file res \ layout \ keyguard_screen_tab_unlock.xml in it we are looking for a line beginning with <com.android.internal.widget.multiwaveview.MultiWaveView it should look something like this <com. : dev: => @ array / lockscreen_target_description_with_camera "android: directionDescriptions =" ​​@ array / lockscreen_direction_description "android: target: dev: =";) dev; = "@ array / lockscreen_targets_with_eng; = @ @ @" : waveDrawable = "@ drawable / ic_lockscreen_outerring" android: outerRadius = "@ dimen / multiwaveview_target_placement_radius" android: hitRadius = "@ dimen / multiwaveview_hit_radius" android: vibrationDuration = "20" android: snapMargin = "@ / roid / multihaw_radius" android: vibrationDuration = "20" android: snapMargin = "@ ap / apap_ multiradi_radius "3" android: verticalOffset = "60.0dip" android: horizontalOffset = "0.0dip" /> It needs to be replaced@ drawable / ic_lockscreen_handleon@ drawable / ic_lockscreen_handle_newand@ drawable / ic_lockscreen_outerringon@ drawable / ic_lockscreen_outerring_new also need propertyverticalOffsetequal0and removeandroid: rightChevronDrawable = "@ drawable / ic_lockscreen_chevron_right"(if leftChevronDrawable is his too) 4.Next, open res \ values ​​\ arrays.xml it needs to be replaced <array name = "lockscreen_targets_with_camera"> <item>@ drawable / ic_lockscreen_unlock</ item> <item>@null</ item> <item>@ drawable / ic_lockscreen_camera</ item> <item>@null</ item> </ array> <array name = "lockscreen_target_descriptions_with_camera"> <item>@ string / description_target_unlock</ item> <item>@null</ item> <item>@ string / description_target_camera</ item> <item>@null</ item> </ array> on <array name = "lockscreen_targets_with_camera"> <item>@ drawable / ic_lockscreen_unlock</ item> </ array> <array name = "lockscreen_target_descriptions_with_camera"> <item>@ string / description_target_unlock</ item> </ array> 5.Open \ res \ drawable \ ic_lockscreen_unlock.xml see such content <? xml version = "1.0" encoding = "utf-8"?> <selector xmlns: android = "http://schemas.android.com/apk/res/android"> <item android: state_focused = "false" android: state_enabled = "true" android: state_active = "false" android: drawable = "@ drawable / ic_lockscreen_unlock_normal" /> <item android: state_focused = "false" android: state_enabled = "true" android: state_active = "true" android: drawable = "@ drawable / ic_lockscreen_unlock_activated" /> </ selector> we change@ drawable / ic_lockscreen_unlock_normalon@ drawable / ic_lockscreen_transand@ drawable / ic_lockscreen_unlock_activatedon@ drawable / ic_lockscreen_trans 6.This completes the work in framework-res.apk. Putting it back. In the original archive you need to replace the files that we edited with the files from the \ build \ apk \ folder
Files to take it from \ build \ apk \, and not from the archive! Observe file compression!if the file was compressed - put the usual compression, if not - then without compression If framework.jar and framework-res.apk are assembled without errors, then you can proceed to the installation. 3. Installation 1. Copy these 2 files to your phone in any folder in any convenient way. 2.Via® Root Exploreror another file manager with root access support, move them to the \ system folder 3.Set the right of the letter "G" in both files 4.It remains only to move both files to the \ system \ framework folder and restart the phone. After the phone restarts, Google Play may stop working. To restore the market to work, you must move the file \ system \ app \ Vending.apk to any other folder, restart the phone and move it back. For other applications, the medication is the same. Tested on:
Post has been editedDimar - 06.11.15, 21:35 Reason for editing: * -------------------- Honor 9 lite- Stoke8.0.0 Highscreen Zera S rev S- CM13 + Sony SBH80 Asus Nexus 7 2013 LTE- Stoke6.0.1 |
Message#25 05.02.13, 23:18 | |
Picker APK [offline] Group: Friendssavagemessiahzine.com Messages 1935 Check in: 03.12.09 HTC Desire S Reputation: 4398 | And it will be useful for fans to change system icons apk (This archive changes the Contacts and Phone icons for HDPI devices with android 4) Made an archive for recovery when applied inClockWorkMod Recoveryresources in apk are replacedrreplacer.zip(538.99 KB) All that is required is to put a folder named apk (Contacts.apk) in the MOD folder, in which the picture is in the same folder as the apk itself (res / mipmap-hdpi / ic_launcher_phone.png) Well, sign The script reads the name of the folder (there may be a lot of folders), searches for apk with that name in the system / app, then in the system / framework, if it does not find it, writes sd to the log file (rreplacer.txt). If it finds the contents of this folder in apk (that is, you can change any files in apk, not just pictures) If you get an error when applying the archivestatus 0must be replaced in the archiveMETA-INF / com / google / android /update-binaryfile from the working archive for CWM Post has been editedDimar - 06.11.15, 21:38 Reason for editing: * -------------------- Winner of the Sixth Prizesavagemessiahzine.comin the "Rescuer 2011" nomination .: Instructions and tools :. |
Message#26 26.02.13, 18:04 | |
Guru [offline] Group: Friendssavagemessiahzine.com Messages 6872 Check in: 07.10.12 Sony Xperia M5 Reputation: 1968 | Button Icon, Calling Power Menu for Android 4 ICS When you click on it, the screen turns off, with a long tap appearsPower menu checked on 4.0.4.- works;) Instruction ParseSystemUI.apkand in the folder SystemUI \ res \drawable-hdpiadd an iconic_sysbar_lock.png, size 48x48. now in SystemUI file \ res \ layout \status_bar.xmladd this code <com.android.systemui.statusbar.policy.KeyButtonView android: id = "@ id / back" android: paddingLeft = "4.0dip" android: paddingRight = "0.0dip" android: layout_width = "wrap_content" android: layout_height = "fill_parent "android: src =" @ drawable / ic_sysbar_lock "android: layout_toRightOf =" @ id / recent_apps "android: contentDescription =" @ string / accessibility_back "systemui: keyCode =" 26 "systemui: glowBackground =" @ drawable / ic_sysbar_highlight "/> after <ImageView android: gravity = "center" android: id = "@ id / battery" android: paddingLeft = "4.0dip" android: layout_width = "wrap_content" android: layout_height = "wrap_content" /> This, for example, for my battery (in short, as you need, go there and stick it;)) we collect according to the instructions. result Addition Post has been editedDimar - 06.11.15, 22:18 Reason for editing: * -------------------- |
Message#27 01.03.13, 16:28 | |
Picker APK [offline] Group: Friendssavagemessiahzine.com Messages 1935 Check in: 03.12.09 HTC Desire S Reputation: 4398 | Advanced PowerMenu with reboot options for Android 4.0; 4.1; 4.2 Files and instructions for 4.0 ICS reboot_options.rar(2.11 KB) Work with framework-res.apk Parseframework-res.apk 1. Add toframework-res / res / drawable-hdpipictureic_lock_reboot.png 2. Add toframework-res / res / values ​​/strings.xmlline: Code <string name = "global_action_reboot">Reboot</ string> 3. Add toframework-res / res / values ​​/arrays.xmllines: Code <string-array name = "reboot_options"> <item>Hot boot</ item> <item>Normal</ item> <item>Recovery</ item> </ string-array> <string-array name = "reboot_modes"> <item>hotboot</ item> <item>now</ item> <item>recovery</ item> </ string-array> 4. Add toframework-res / res / values-en /strings.xmlline: Code <string name = "global_action_reboot">Reboot</ string> 5. Add toframework-res / res / values-en /arrays.xmllines: Code <string-array name = "reboot_options"> <item>Fast</ item> <item>Ordinary</ item> <item>Recovery</ item> </ string-array> We collectframework-res.apk 6. Go to the folderframework-res / dist And parse the framework-res.apk lying there (in this apk, the correct IDs for the added lines / pictures are already assigned) we copy with replacement fileframework-res / dist / framework-res / res / values ​​/public.xml to folderframework-res / res / values ​​/ 7. Openframework-res / res / values ​​/public.xmland look for added lines / picture (you will probably have other id) Code <public type = "string" name = "global_action_reboot" id = "0x010404db" /> ... <public type = "array" name = "reboot_options" id = "0x01070033" /> <public type = "array" name = "reboot_modes" id = "0x01070034" /> ... <public type = "drawable" name = "ic_lock_reboot" id = "0x010805e8" /> 8. Openframework-res / res / values-en /strings.xml We are looking for a line from the menu to turn off the phone, I have this "Power off" <string name = "global_action_power_off">Power off</ string> rememberglobal_action_power_off Open upframework-res / res / values ​​/public.xml We are looking for the memorizedglobal_action_power_off <public type = "string" name = "global_action_power_off" id = "0x0104012f" /> We collectframework-res.apk, in the original we changeresources.arscand add a picture inres / drawable-hdpi Work with android.policy.jar All that after “#†are my comments, you do not need to add them 1. We disassembleandroid.policy.jar(same as apk using ApkTools) 2. Openandroid.policy / smali / com / android / internal / policy / impl /GlobalActions.smali We are looking for the memorized off line ID104012f Code .line 204 iget-object v0, p0, Lcom / android / internal / policy / impl / GlobalActions; ->mItems: Ljava / util / ArrayList; new-instance v1, Lcom / android / internal / policy / impl / GlobalActions $ 2; const v2,0x1080030 const v3, 0x104012f # This is the shutdown line id invoke-direct {v1, p0, v2, v3}, Lcom / android / internal / policy / impl / GlobalActions $ 2; -><init>(Lcom / android / internal / policy / impl / GlobalActions; II) V invoke-virtual {v0, v1}, Ljava / util / ArrayList; ->add (Ljava / lang / Object;) Z 3. Copy these lines from .line to .line and paste immediately after them 4. Replace id with memorized Code .line 204 iget-object v0, p0, Lcom / android / internal / policy / impl / GlobalActions; ->mItems: Ljava / util / ArrayList; new-instance v1, Lcom / android / internal / policy / impl / GlobalActions $ 99; # Replacing GlobalActions $ 2 ->GlobalActions $ 99 const v2.0x1080030 # Replacement 1080030 ->10805e8 (id pictures ic_lock_reboot) const v3, 0x10404db Replacement 104012f ->10404db (global_action_reboot line id) invoke-direct {v1, p0, v2, v3}, Lcom / android / internal / policy / impl / GlobalActions $ 99; -><init>(Lcom / android / internal / policy / impl / GlobalActions; II) V # Replacing GlobalActions $ 2 ->GlobalActions $ 99 invoke-virtual {v0, v1}, Ljava / util / ArrayList; ->add (Ljava / lang / Object;) Z 5. Open the file in the same folder with the method of turning off the phone -GlobalActions $ 2 look for the string #getter for: Lcom / android / internal / policy / impl / GlobalActions; ->mContext: Landroid / content / Context; If the number is different - remember 6. Copy the files from the downloaded archive to this folder -GlobalActions $ 99.smaliandGlobalActions $ 99 $ 1.smali 7. Open the fileGlobalActions $ 99.smali If the number in paragraph 5access $ 100there was another - we replace all access $ 100 with the remembered (for example access $ 100 ->access $ 200) We change the specified id on the Code # virtual methods .method public onPress () V .locals 6 const / 4 v5, 0x4 new-instance v1, Landroid / app / alertDialog $ Builder; iget-object v2, p0, Lcom / android / internal / policy / impl / GlobalActions $ 99; ->this $ 0: Lcom / android / internal / policy / impl / GlobalActions; invoke-static {v2}, Lcom / android / internal / policy / impl / GlobalActions; ->access $ 100 (Lcom / android / internal / policy / impl / GlobalActions;) Landroid / content / Context; move-result-object v2 invoke-direct {v1, v2}, Landroid / app / alertDialog $ Builder; -><init>(Landroid / content / Context;) V const v2, 0x10404db # Replacing the id of the global_action_reboot string invoke-virtual {v1, v2}, Landroid / app / alertDialog $ Builder; ->setTitle (I) Landroid / app / alertDialog $ Builder; move-result-object v1 const v2.0x10805e8 # Replacing id pictures ic_lock_reboot invoke-virtual {v1, v2}, Landroid / app / alertDialog $ Builder; ->setIcon (I) Landroid / app / alertDialog $ Builder; move-result-object v1 const v2.0x1070033 # Replacing id id array (array) reboot_options 8. Open the fileGlobalActions $ 99 $ 1.smali If the number in paragraph 5access $ 100there was another - we replace all access $ 100 with the remembered (for example access $ 100 ->access $ 200) We change the specified id on the Code invoke-virtual {v2}, Landroid / content / Context; ->getResources () Landroid / content / res / Resources; move-result-object v2 const v3, 0x1070034 # Replacing id of array (array) reboot_modes invoke-virtual {v2, v3}, Landroid / content / res / Resources; ->getStringArray (I) [Ljava / lang / String; Files for 4.0 ICS - 4.2 Jelly Bean rebootOptionsICSJB.rar(3.01 KB) The instruction is the same, the only thing you need to look for #getter for: Lcom / android / internal / policy / impl / GlobalActions; ->mContext: Landroid / content / Context; If there is no such line (#getter for: Lcom / android / internal / policy / impl / GlobalActions; ->mContext: Landroid / content / Context;) the number for access can be found inGlobalActions.smali need to find such a method Code .method static synthetic access $ 100 (Lcom / android / internal / policy / impl / GlobalActions;) Landroid / content / Context; .locals 1 .parameter "x0" .prologue .line 56 iget-object v0, p0, Lcom / android / internal / policy / impl / GlobalActions; ->mContext: Landroid / content / Context; return object v0 .end method Files for 4.0 ICS - 4.2 Jelly Bean for Sony rebootOptionsICSJBsony.rar(3.11 KB) In Sony phones, a reboot in recovery occurs only if there is a file./ cache / recovery / boot In this set of files, this file is created when selecting the itemRecovery Additionally Items can be swapped, delete unnecessary the main thing is toreboot_optionsmatchedreboot_modes Hot Boot ->hotboot <- Quickly Recovery ->recovery <- Recover Normal ->now <- Usually Download ->download <- Firmware (this is for Samsung) Bootloader ->bootloader <- bootloader (this is for HTC) Post has been editedDimar - 06.11.15, 22:02 Reason for editing: * -------------------- Winner of the Sixth Prizesavagemessiahzine.comin the "Rescuer 2011" nomination .: Instructions and tools :. |
Message#28 05.03.13, 18:34 | |
Guru [offline] Group: Friendssavagemessiahzine.com Messages 8375 Check in: 27.12.09 Honor View 20 6/128 Reputation: 1154 | Code examples. We insert and rule ... how and where you like! Elements of the status bar Editing SystemUI.apk / res / layout / status_bar.xml watch with seconds <DigitalClock android: textAppearance = "@ style / TextAppearance.StatusBar.Clock" android: gravity = "left | center" android: id = "@ id / clock" android: paddingLeft = "6.0dip" android: paddingRight = "6.0dip" android: layout_width = "wrap_content" android: layout_height = "fill_parent" android: singleLine = "true" /> separator <TextView android: textSize = "18.0sp" android: textColor = "# ff339bc1" android: gravity = "left | center" android: id = "@ id / clock" android: paddingRight = "6.0dip" android: layout_width = "wrap_content "android: layout_height =" wrap_content "android: text =" @string / status_bar_network_name_separator "/> date <com.android.systemui.statusbar.policy.DateView android: textAppearance = "@ style / TextAppearance.StatusBar.Clock" android: gravity = "left | center" android: id = "@ id / date" android: paddingRight = "6.0 dip "android: layout_width =" wrap_content "android: layout_height =" wrap_content "android: singleLine =" true "android: layout_toRightOf =" @ id / clock "android: layout_alignBaseline =" @ id / clock "/> separator <TextView android: textSize = "18.0sp" android: textColor = "# ff339bc1" android: gravity = "left | center" android: id = "@ id / clock" android: paddingRight = "6.0dip" android: layout_width = "wrap_content "android: layout_height =" wrap_content "android: text =" @string / status_bar_network_name_separator "/> speed <in.jmkl.dcsms.statusbargreper.DataTrafik android: textAppearance = "@ style / TextAppearance.StatusBar.Clock" android: gravity = "left | center" android: id = "@ id / date" android: paddingRight = "6.0dip" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: singleLine = "true" android: layout_toRightOf = "@ id / clock" android: layout_alignBaseline = "@ id / clock" /> separator <TextView android: textSize = "18.0sp" android: textColor = "# ff339bc1" android: gravity = "left | center" android: id = "@ id / clock" android: paddingRight = "6.0dip" android: layout_width = "wrap_content "android: layout_height =" wrap_content "android: text =" @string / status_bar_network_name_separator "/> The distance between the elements is given by the values. android: paddingRight = "6.0dipright indent android: paddingLeft = "6.0dipleft indent + smali to display networkNetwork.zip(4.74 KB) So here's a status bar myself made. Post has been editedDimar - 06.11.15, 22:08 Reason for editing: * |
Message#29 26.03.13, 20:54 | |
Imagine Dragons | Muse [offline] Group: Friendssavagemessiahzine.com Messages 5504 Check in: 12.09.11 Xiaomi Redmi Note 4X Snapdragon 3/32 Reputation: 1041 | Supplement toButton Icon, Calling Power Menu for Android 4 ICS Instructiongarynych2010It turned out to be inoperative on the tablet - tablet ui. I had to correct. Instruction 1) disassemble SystemUI.apk 2) Open the fileres / layout-sw600dp / status_bar_notification_area.xmlIt is worth noting that for some, the layout-sw600dp folder may have a different number in the name - this depends on the density of the display points of the device. We are looking for such a code <LinearLayout android: gravity = "center" android: orientation = "horizontal" android: id = "@ id / signal_battery_cluster" android: layout_width = "wrap_content" android: layout_height = "fill_parent" android: layout_marginRight = "0.0dip"> <include android: id = "@ id / signal_cluster" android: layout_width = "wrap_content" android: layout_height = "wrap_content" layout = "@ layout / signal_cluster_view" /> <ImageView android: id = "@ id / bluetooth" android: paddingLeft = "4.0dip" android: visibility = "gone" android: layout_width = "wrap_content" android: layout_height = "wrap_content" /> <ImageView android: id = "@ id / battery" android: paddingLeft = "4.0dip" android: layout_width = "wrap_content" android: layout_height = "wrap_content" /> </ LinearLayout> 3) We see that the last in the list is a battery charge level indicator. We paste the following code below: <com.android.systemui.statusbar.policy.KeyButtonView android: id = "@ id / button" android: paddingLeft = "4.0dip" android: paddingRight = "4.0dip" android: layout_width = "wrap_content" android: layout_height = "fill_parent "android: src =" @ drawable / ic_sysbar_lock "android: layout_toRightOf =" @ id / battery "android: contentDescription =" @ string / accessibility_back "systemui: keyCode =" 26 "systemui: glowBackground =" @ drawable / ic_sysbar_highlight "/> 4) We throw in the res / drawable / mdpi / picture - button. I think some will not have mdpi but hdpi. The code has the ic_sysbar_lock picture - so it should be named ic_sysbar_lock.png. You can put an image with any name along the specified path, but in the code then we also change the name to our own. 5) We collect SystemUI.apk We have in the lower right corner of the screen a lock button and call the shutdown menu with a long tap. Post has been editedDimar - 06.11.15, 22:16 Reason for editing: * -------------------- Whatever you think of me, know that I'm worse. So do not mess. |
Message#30 27.03.13, 09:57 | |
Do not be afraid if you are alone, be afraid [offline] Group: Friendssavagemessiahzine.com Messages 1212 Check in: 03.02.12 Xiaomi Mi Max 2 4/64 Reputation: 131 | The effect of the old TV on ICS 4.0.4 I did everything according to this instruction:Enabling CRT-off Animation on Stock ICS roms Instruction We will need to edit two files framework-res.apk and services.jar framework-res.apk edit fromOld tv animation proceed to services.jar smali \ com \ android \ server \ PowerManagerService.smali look for the string: invoke-direct {p0, p1}, Lcom / android / server / PowerManagerService; ->nativeStartSurfaceFlingerAnimation (I) V result: .method static synthetic [color = red] access $ 5300 [/ color] (Lcom / android / server / PowerManagerService; I) V .locals 0 .parameter "x0" .parameter "x1" .prologue .line 89 invoke-direct {p0, p1}, Lcom / android / server / PowerManagerService; ->nativeStartSurfaceFlingerAnimation (I) V in the top line we look at the code that is written here [color = red] access $ XXXX [/ color], I have 5300, you may have another remembered or recorded as convenient for anyone Next, go to: PowerManagerService $ BrightnessState.smali look for the string: : try_start_1 we get: .line 2449 .restart local v3 #turningOff: Z : cond_4 : try_start_1 iget-object v4, p0, Lcom / android / server / PowerManagerService $ BrightnessState; ->this $ 0: Lcom / android / server / PowerManagerService; #getter for: Lcom / android / server / PowerManagerService; ->mAnimationSetting: I invoke-static {v4}, Lcom / android / server / PowerManagerService; ->access $ 1700 (Lcom / android / server / PowerManagerService;) I : try_end_1 .catchall {: try_start_1 ..: try_end_1}: catchall_0 move-result v4 between the lines: : cond_4 and: try_start_1 insert these lines: [color = red] iget-object v4, p0, Lcom / android / server / PowerManagerService $ BrightnessState; ->this $ 0: Lcom / android / server / PowerManagerService; const / 16 v3, 0x11 #calls: Lcom / android / server / PowerManagerService; ->nativeStartSurfaceFlingerAnimation (I) V invoke-static {v4, v3}, Lcom / android / server / PowerManagerService; ->[color = green] access $ 5300 [/ color] (Lcom / android / server / PowerManagerService; I) V [/ color] draw attention to the last line where [color = green] access $ 5300 [/ color] should be your code should look like this: .line 2449 .restart local v3 #turningOff: Z : cond_4 [color = red] iget-object v4, p0, Lcom / android / server / PowerManagerService $ BrightnessState; ->this $ 0: Lcom / android / server / PowerManagerService; const / 16 v3, 0x11 #calls: Lcom / android / server / PowerManagerService; ->nativeStartSurfaceFlingerAnimation (I) V invoke-static {v4, v3}, Lcom / android / server / PowerManagerService; ->access $ 5300 (Lcom / android / server / PowerManagerService; I) V [/ color] : try_start_1 iget-object v4, p0, Lcom / android / server / PowerManagerService $ BrightnessState; ->this $ 0: Lcom / android / server / PowerManagerService; #getter for: Lcom / android / server / PowerManagerService; ->mAnimationSetting: I invoke-static {v4}, Lcom / android / server / PowerManagerService; ->access $ 1700 (Lcom / android / server / PowerManagerService;) I : try_end_1 .catchall {: try_start_1 ..: try_end_1}: catchall_0 move-result v4 and on it we collect everything we install Post has been editedDimar - 03.11.15, 21:43 Reason for editing: * -------------------- HTC Desire / Huawei U8860 Honor / Huawei U8950-1 (PCT Stock) + MediaPad FHD S10-101L (B002-Stock) / MegaFon Login + / Lenovo A6000 |
Message#31 11.04.13, 13:52 | |
androidophilus [offline] Group: Friendssavagemessiahzine.com Messages 1397 Check in: 23.07.12 Huawei U9508 Honor 2 Reputation: 284 | Another solution for statusbar transparency Instruction 1-unpack SystemUI 2-open SystemUI / smali / com / android / systemui / statusbar / StatusBar.smali ---->here I will explain, we make changes in another file are looking for invoke-direct / range {v11 .. v16}, Landroid / view / WindowManager $ LayoutParams; -><init>(IiIII) v above this line we replace it const / 16 v16, 0x4 on this const / 16 v16, -0x3 then go to SystemUI / res / values ​​/ drawables.xml and change this parameter by color <item type = "drawable" name = "status_bar_background"> Post has been editedDimar - 08.11.15, 08:36 Reason for editing: * -------------------- new motto Microsoft o.OSomething happenso.O |
Message#32 01.05.13, 00:17 | |
Follow the dream [offline] Group: Friendssavagemessiahzine.com Messages 3505 Check in: 25.04.12 Reputation: 763 | A little bit of money, a boring evening was, I sat down to experiment: The height of the volume scale in Android 4.0.4 (when you press the volume + / -) Turn on screen rotation: all 4 sides Framework-res.apk / res / values ​​/bools.xml Value: <bool name = "config_allowAllRotations">false</ bool> change to: <bool name = "config_allowAllRotations">true</ bool> Now the settings menu, browser and other applications can be turned around as you like (for example, reading the Internet and not pressing the touch buttons of a smart) Rotation of Lockcreen (on the side) Framework-res.apk / res / values ​​/bools.xml Value: <bool name = "config_enableLockScreenRotation">false</ bool> Change to: <bool name = "config_enableLockScreenRotation">true</ bool> ZY Some OS crashes itself (Will restart) if you put a lock on the screen - a graphic key. For the notification message button (I have it now gray) Post has been editedDimar - 07.11.15, 19:38 Reason for editing: * -------------------- 4Be yourself - and everything will go as it should. |
Message#33 02.05.13, 16:10 | |
Veteran [offline] Group: Honorary Gameday Messages 1706 Check in: 05.03.09 Xiaomi Redmi 4 Prime Reputation: 888 | Transparent statusbar on Jelly Bean Description So, quite suddenly and unexpectedly (especially for Sony), the unofficial JB came out on Xperia Sola. Well, I can not without transparency. Faced with the fact that the network does not have instructions on how to implement transparency on 4.1.2. One kind man namedman03threw a link to the mod, which as a result and became the basis of the method. Slightly redid, true - one editing smali less. Actually, the method works exactly, the status bar is transparent, you can set any degree. Step 1: android.policy.jar The most difficult thing is to find the desired string. Below are two spoilers, BEFORE and AFTER, guided by the lines next to each other. Red- what needs to be replaced. In russki- demolish nafig. Green- what needs to be replaced. In Russian- add Blue- what you need to focus on. Open the fileandroid.policysmalicomandroidinternalpolicyimplPhoneWindowManager.smali BEFORE .line 2552 iget v0, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mSystemTop: I iput v0, p1, Landroid / graphics / Rect; ->top: I .line 2553 iget v0, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mSystemRight: I iput v0, p1, Landroid / graphics / Rect; ->right: I .line 2554 iget v0, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mSystemBottom: I iput v0, p1, Landroid / graphics / Rect; ->bottom: I .line 2555 iget-object v0, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mStatusBar: Landroid / view / WindowManagerPolicy $ WindowState; if-eqz v0,: cond_0 iget-object v0, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mStatusBar: Landroid / view / WindowManagerPolicy $ WindowState; invoke-interface {v0}, Landroid / view / WindowManagerPolicy $ WindowState; ->getSurfaceLayer () I move-result v0 .line 2557 : goto_0 return v0 .line 2556 : cond_0 iget-object v0, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mNavigationBar: Landroid / view / WindowManagerPolicy $ WindowState; if-eqz v0,: cond_1 iget-object v0, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mNavigationBar: Landroid / view / WindowManagerPolicy $ WindowState; invoke-interface {v0}, Landroid / view / WindowManagerPolicy $ WindowState; ->getSurfaceLayer () I move-result v0 goto: goto_0 .line 2557 : cond_1 const / 4 v0, 0x0 goto: goto_0 .end method AFTER .line 2552 iget v0, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mSystemTop: I iput v0, p1, Landroid / graphics / Rect; ->top: I .line 2553 iget v0, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mSystemRight: I iput v0, p1, Landroid / graphics / Rect; ->right: I .line 2554 iget v0, p0, Lcom / android / internal / policy / impl / PhoneWindowManager; ->mSystemBottom: I iput v0, p1, Landroid / graphics / Rect; ->bottom: I const / 4 v0, 0x0 return v0 .end method Shl. Copy it entirely, do not follow line breaks and spaces. Step 2: SystemUI.apk And here everything is very simple, we open our favoriteSystemUIresvaluesdrawables.xmland rule selected as we want,degree of transparency (standard FF)andshade (standard 000000). I did this: <item type = "drawable" name = "status_bar_background">#5a000000</ item> thankman03for a tip) Post has been editedDimar - 07.11.15, 20:14 Reason for editing: * -------------------- Samsung X100 =>Nokia 3230 =>Siemens M75 =>Siemens S75 =>Nokia N73 ME =>Nokia 6720 Classic =>Sony Ericsson Xperia Neo =>Sony Xperia Sola =>Samsung S4 Mini =>Xiaomi Redmi 4 Prime |
Message#34 12.05.13, 12:54 | |
Local [offline] Group: Friendssavagemessiahzine.com Messages 200 Check in: 21.11.12 Samsung Galaxy S3 GT-I9300 Reputation: 74 | Changing the color of the clock, date and charge on the lockscreen for the tablet Instruction 1. Unpacking Framework-res.apk (I use a set from a reputablesk0t) 2. In the unpacked Framework-res.apk, go here Framework-res \ res \ layout-sw600dp 3. Find the files keyguard_screen_status_land.xml and keyguard_screen_status_port.xml 4. Find the following lines. Focusing onblue lettering <? xml version = "1.0" encoding = "utf-8"?> <LinearLayout android: gravity = "right" android: orientation = "vertical" android: layout_width = "wrap_content" android: layout_height = "wrap_content" xmlns: android = "http://schemas.android.com/apk/res/android "> <TextView android: textAppearance = "? TextAppearanceMedium" android: textSize = "16.0sp" android: ellipsize = "marquee" android: id = "@ id / carrier" android: visibility = "gone" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "32.0dip" android: singleLine = "true" android: drawablePadding = "4.0dip" /> <com.android.internal.widget.DigitalClockandroid: id = "@ id / time" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "8.0dip" android: layout_marginBottom = "8.0dip"> <TextView android: textAppearance = "? TextAppearanceMedium" android: textSize = "@ dimen / keyguard_pattern_unlock_clock_font_size" android: textColor = "@ color / lockscreen_clock_background" android: ellipsize = "none android: id =" "wrap_content" android: layout_height = "wrap_content" android: layout_marginBottom = "6.0dip" android: singleLine = "true" /> <TextView android: textAppearance = "? TextAppearanceMedium" android: textSize = "@ dimen / keyguard_pattern_unlock_clock_font_size"android: textColor = "@ color / lockscreen_clock_foreground"Android: ellipsize = "none" Android: id = "@ id / timeDisplayForeground" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginBottom = "6.0dip" android: singleLine = "true" android: layout_alignLeft = "@ id / timeDisplayBackground" android: layout_alignTop = "@ id / timeDisplayBackground" /> 5. What is highlighted in red and the color of the clock on the lockscreen 6. We will not change anything here 7. Looking for another folder framework-res \ res \ values-sw600dp \ 8. Find the colors.xml file <? xml version = "1.0" encoding = "utf-8"?> <resources> <color name = "lockscreen_clock_background">#ffffffff</ color> <color name = "lockscreen_clock_foreground">#ffffffff</ color> <color name = "lockscreen_clock_am_pm">#ffffffff</ color> <color name = "lockscreen_owner_info"># ff9a9a9a</ color> </ resources> 9. This is the color of the clock (what is highlighted in red) 10. Change to any color (which you want) 11. Now for the date and charge 12. Open the file from step 3 and find the lines </com.android.internal.widget.DigitalClock> <LinearLayout android: orientation = "horizontal" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "10.0dip" android: layout_below = "@ id / time"> <TextView android: textAppearance = "? TextAppearanceMedium" android: textSize = "16.0sp"android: id = "@ id / date" android: layout_width = "wrap_content" android: layout_height = "wrap_content" /> <TextView android: textAppearance = "? TextAppearanceMedium" android: textSize = "16.0sp"android: id = "@ id / alarm_status" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginLeft = "16.0dip" android: drawablePadding = "4.0dip" /> </ LinearLayout> <TextView android: textAppearance = "? TextAppearanceMedium" android: textSize = "16.0sp"android: id = "@ id / status1" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "10.0dip" /> <TextView android: textAppearance = "? TextAppearanceMedium" android: textSize = "16.0sp"android: textColor = "@ color / lockscreen_owner_info" android: id = "@ id / propertyOf" android: visibility = "invisible" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "20.0dip" android : singleLine = "false" android: lineSpacingExtra = "8.0dip" /> </ LinearLayout> 13. And add the following line android: textColor = "@ color / lockscreen_clock_foreground" 14. Get the following </com.android.internal.widget.DigitalClock> <LinearLayout android: orientation = "horizontal" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "10.0dip" android: layout_below = "@ id / time"> <TextView android: textAppearance = "? TextAppearanceMedium" android: textSize = "16.0sp"android: textColor = "@ color / lockscreen_clock_foreground"android: id = "@ id / date" android: layout_width = "wrap_content" android: layout_height = "wrap_content" /> <TextView android: textAppearance = "? TextAppearanceMedium" android: textSize = "16.0sp"android: textColor = "@ color / lockscreen_clock_foreground"android: id = "@ id / alarm_status" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginLeft = "16.0dip" android: drawablePadding = "4.0dip" /> </ LinearLayout> <TextView android: textAppearance = "? TextAppearanceMedium" android: textSize = "16.0sp"android: textColor = "@ color / lockscreen_clock_foreground"android: id = "@ id / status1" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "10.0dip" /> <TextView android: textAppearance = "? TextAppearanceMedium" android: textSize = "16.0sp"android: textColor = "@ color / lockscreen_clock_foreground"android: textColor = "@ color / lockscreen_owner_info" android: id = "@ id / propertyOf" android: visibility = "invisible" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "20.0dip" android : singleLine = "false" android: lineSpacingExtra = "8.0dip" /> </ LinearLayout> 15. Adding lines to produce fileskeyguard_screen_status_land.xml and keyguard_screen_status_port.xml 16. If you add only one, then when you turn the tablet, the letters will be white !!!! 17. We collect and admire Post has been editedDimar - 07.11.15, 20:16 Reason for editing: * -------------------- Archos 101 G9 Turbo FS 16 GB Android 4.0.4 (ICS) 4.0.28 BUILD 4 Samsung Galaxy S3 Duos GT-I9300I |
Message#35 12.05.13, 13:31 | |
Follow the dream [offline] Group: Friendssavagemessiahzine.com Messages 3505 Check in: 25.04.12 Reputation: 763 | The color of the clock with the curtain closed on the Acer Tablet. (For example, Acer iconia TAB a210) (Android 4.1.1) Instruction We are sorting out SystemUI.apk (we have fewer problems through apkManager) We look below the path-and in the same place I selected 2 lines. 1 shows which blog we’ll be editing and the second is that in this block we’re editing (it's hard to get lost here because these lines are at the very beginning) Change the line: <item name = "android: textColor">@android: color / holo_blue_light</ item> <item name = "android: textColor">#ffffffff</ item> Post has been editedDimar - 07.11.15, 20:33 Reason for editing: * -------------------- 4Be yourself - and everything will go as it should. |
Message#36 14.05.13, 17:02 | |
Guru [offline] Group: Developers Messages 7779 Check in: 05.11.08 Xiaomi Redmi Note 4X Snapdragon 3/32 Reputation: 2293 | Remove bounce in scrolling lists. On some firmware 4.0.4 there is a very annoying bug, namely the long rebound height screenshot Corrected instruction Now it does not slow down the touch (there were slowdowns in some applications in the old version) Decompilimsecondary_framework.jarand go on the roadsmali / android / view Open the fileViewConfiguration.smaliand change This is no longer necessary .field private static final OVERFLING_DISTANCE: I = 0xf0 .field private static final OVERSCROLL_DISTANCE: I = 0xf0 on this: .field private static final OVERFLING_DISTANCE: I = 0x6 .field private static final OVERSCROLL_DISTANCE: I = 0x0 Then look for .line 264 iput v2, p0, Landroid / view / ViewConfiguration; ->mOverscrollDistance: I .line 265 iput v2, p0, Landroid / view / ViewConfiguration; ->mOverflingDistance: I and replace with .line 264 const / 4 v0, 0x0 iput v0, p0, Landroid / view / ViewConfiguration; ->mOverscrollDistance: I .line 265 const / 4 v0, 0x6 iput v0, p0, Landroid / view / ViewConfiguration; ->mOverflingDistance: I .line 406 const-string v0, "long_press_timeout" and replace with .line 406 const-string / jumbo v0, "long_press_timeout" Are looking for .line 303 mul-float v9, v5, v12 add-float / 2addr v9, v11 float-to-int v9, v9 iput v9, p0, Landroid / view / ViewConfiguration; ->mOverscrollDistance: I .line 304 mul-float v9, v5, v12 add-float / 2addr v9, v11 float-to-int v9, v9 iput v9, p0, Landroid / view / ViewConfiguration; ->mOverflingDistance: I and replace with .line 303 const / 4 v9, 0x0 mul-float / 2addr v9, v5 add-float / 2addr v9, v11 float-to-int v9, v9 iput v9, p0, Landroid / view / ViewConfiguration; ->mOverscrollDistance: I .line 304 const / high16 v9, 0x40c0 mul-float / 2addr v9, v5 add-float / 2addr v9, v11 float-to-int v9, v9 iput v9, p0, Landroid / view / ViewConfiguration; ->mOverflingDistance: I We compile and there is no longer a long scroll! Here is a video comparison:up fashion , with mod. Addition Post has been editedDimar - 07.11.15, 20:41 Reason for editing: * |
Message#37 21.05.13, 17:18 | |
Picker APK [offline] Group: Friendssavagemessiahzine.com Messages 1935 Check in: 03.12.09 HTC Desire S Reputation: 4398 | Supplement toRemove bounce in scrolling lists. Simpler method Instruction framework-res / res / values ​​/styles.xml style<style name = "Widget.AbsListView" parent = "@ style / Widget"> add parameter <item name = "overScrollMode">never</ item> FlashToggle_1.0.apk(171.28 KB) Post has been editedDimar - 07.11.15, 20:42 Reason for editing: * -------------------- Winner of the Sixth Prizesavagemessiahzine.comin the "Rescuer 2011" nomination .: Instructions and tools :. |
Message#38 27.05.13, 08:43 | |
Local [offline] Group: Friendssavagemessiahzine.com Messages 200 Check in: 21.11.12 Samsung Galaxy S3 GT-I9300 Reputation: 74 | Editing Lockscreen (change the circle of lockscreen, change the composition of the icons around the circle) It was will become What do you need: only framework-res.apk Let's start. (change circle lockscreen'a) 1. Unpack framework-res.apk 2. Find ic_lockscreen_outering.xml (I have a res / drawables path) <? xml version = "1.0" encoding = "utf-8"?> <shape android: shape = "oval" xmlns: android = "http://schemas.android.com/apk/res/android "> <size android: height = "@ dimen / keyguard_lockscreen_outerring_diameter" android: width = "@ dimen / keyguard_lockscreen_outerring_diameter" /> <solid android: color ="# 00ff4f00" /> <stroke android: width = "2.0dip" android: color = "# 1affffff" /> </ shape> This inscriptionandroid: shape = "oval"means that android itself draws a circle (Ie the picture is not needed). The diameter of the circle is in the file ds.s.xml (I have the res / values-sw600dp path). Line<dimen name = "keyguard_lockscreen_outerring_diameter">364.0dip</ dimen> Color circle android: color ="# 1affffff" Thickness of the circle android: width ="2.0dip" Color inside the circle<solid android: color = "# 00ff4f00" />(in this case it is transparent) 3. To change the diameter, change the value.364.0dipon its 4. To change the color of the circle, change"# 1affffff"on its 5. To change the thickness of the circle, change"2.0dip"on its 6. To the circle did not appear, change"# 1affffff"on"# 00ffffff"(transparent) 7. To fill the circle, change"# 00ff4f00"on"# ffff4f00"(or another, your own). Let's start. (the composition of the icons around the circle (IMHO you can put 4 icons in total, without editing * .smali)) 1. In the unpacked framework-res.apk, we find keyguard_screen_tab_unlock.xml and keyguard_screen_tab_unlock_land.xml (I have the res / layout-sw600dp path). 2. We look at such a piece of code <LinearLayout android: orientation = "vertical" android: layout_width = "fill_parent" android: layout_height = "0.0dip" android: layout_weight = "1.0"> <TextView android: textAppearance = "? TextAppearanceMedium" android: id = "@ id / screenLocked" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginLeft = "24.0dip" android: layout_marginTop "" : drawablePadding = "4.0dip" /> <com.android.internal.widget.multiwaveview.MultiWaveView android: layout_gravity = "center" android: orientation = "horizontal" android: id = "@ id / unlock_widget" android: layout_width = "fill_parent" android: layout_height = "fill_parent" android : layout_alignParentBottom = "true"android: targetDescriptions = "@ array / lockscreen_target_descriptions_with_camera" android: directionDescriptions = "@ array / lockscreen_direction_descriptions" android: targetDrawables = "@ array / lockscreen_targets_with_camera"android: handleDrawable = "@ drawable / ic_lockscreen_handle" android: rightChevronDrawable = "@ dex draw / ic_lockscreen_chevron_right" android: vibrationDuration = "20" android: snapMargin = "@ dimen / multiwaveview_snap_margin" android: feedbackCount = "3" android: verticalOffset = "60.0dip" android: horizontalOffset = "0.0dip" /> <Button android: id = "@ id / emergencyCallButton" android: visibility = "gone" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginBottom = "90.0dip" android: drawableLeft = "@ drawable / ic_emergency" android: drawablePadding = "8.0dip" android: layout_alignParentBottom = "true" android: layout_centerInParent = "true" style = "@ style / Widget.Button.Transparent" /> </ LinearLayout> 3. We are looking for what is highlighted in red. It is this appeal that is displayed on the Lockscreen. 4. Here we do not touch anything, just need to remember what is highlighted in red. 5. Next we find the file arrays.xml (I have the res / values ​​path, as well asres / values-sw600dp-land) 6. Search the file, we find the lines that are remembered, specificallylockscreen_target_descriptions_with_camera and lockscreen_direction_descriptions and lockscreen_targets_with_camera 7. The first line is a description. The second is from what side what will be displayed. The third is the pictures that are displayed on the Lockscreen. 7.a. If you change something in res / values ​​/ arrays.xml, THAT NEEDS TO CHANGE HERE res / values-sw600dp-land / arrays.xml. When loading data, first take it from there. 8. Here is this piece of code. array name = "lockscreen_targets_with_camera"> <item>@ drawable / ic_lockscreen_unlock</ item>(picture deputyaboutchka) <item>@ drawable / ic_action_assist_generic</ item>(picture search) <item>@ drawable / ic_lockscreen_camera</ item>(picture camera) <item>@null</ item> </ array> <string-array name = "lockscreen_target_descriptions_with_camera"> <item>@ string / description_target_unlock</ item> <item>@ string / description_target_search</ item> <item>@ string / description_target_camera</ item> <item>@null</ item> </ string-array> 9. If, you do not needSearchandcamerathen you need to do so array name = "lockscreen_targets_with_camera"> <item>@ drawable / ic_lockscreen_unlock</ item> <item>@null</ item> <item>@null</ item> <item>@null</ item> </ array> <string-array name = "lockscreen_target_descriptions_with_camera"> <item>@ string / description_target_unlock</ item> <item>@null</ item> <item>@null</ item> <item>@null</ item> </ string-array> 10. If, you do not need onlySearchthen so array name = "lockscreen_targets_with_camera"> <item>@ drawable / ic_lockscreen_unlock</ item> <item>@null</ item> <item>@ drawable / ic_lockscreen_camera</ item> <item>@null</ item> </ array> <string-array name = "lockscreen_target_descriptions_with_camera"> <item>@ string / description_target_unlock</ item> <item>@null</ item> <item>@ string / description_target_camera</ item> <item>@null</ item> </ string-array> Post has been editedDimar - 07.11.15, 20:44 Reason for editing: * -------------------- Archos 101 G9 Turbo FS 16 GB Android 4.0.4 (ICS) 4.0.28 BUILD 4 Samsung Galaxy S3 Duos GT-I9300I |
Message#39 29.05.13, 17:02 | |
Local [offline] Group: Friendssavagemessiahzine.com Messages 200 Check in: 21.11.12 Samsung Galaxy S3 GT-I9300 Reputation: 74 | Editing Lockscreen (placement, centering, layout) Powered by ICS and JB (verified) Changing the color of the clock, date and charge on the lockscreen for the tablet(part 1) |Change the circle of Lockscreen, change the composition of the icons around the circle(part 2) Lord Guru editing framework-res.apk and SystemUI.apk, if somewhere was wrong or not correctly reflect, tell me exactly where. Well then, let's begin. The lesson is made, as if by half a lesson, by half a FAQ on the structure of .xml resources. What do you need: only framework-res.apk (arms straight - desirable, but not critical) We have such a picture In this case, the tablet is in landscape mode and we see the date, clock on the left (the tablet was not charging, so there is no charging, and there is no other information, there is no mobile provider either), and there is a lockscreen on the left. The date does not look very good, everything is skilful and it is not clear how it is aligned. Will do it PART ONE 1. Unpack framework-res.apk 2. Go here res / layout-sw600dp / keyguard_screen_tab_unlock_land.xml And we see such a disgrace. (brought in a more readable form) <? xml version = "1.0" encoding = "utf-8"?> <Linearlayout android: orientation = "horizontal" android: id = "@ id / root" android: layout_width = "fill_parent" android: layout_height = "fill_parent" xmlns: android = "http://schemas.android.com/apk/res/android " xmlns: tabunlock = "http://schemas.android.com/apk/res/com.android.tabunlock "> <RelativeLayout android: gravity = "center" android: layout_width = "0.0dip" android: layout_height = "fill_parent" android: layout_weight = "0.42"> <RelativeLayout android: id = "@ id / transport_bg_protect" android: layout_width = "512.0dip" android: layout_height = "wrap_content"> <include android: layout_width = "fill_parent" android: layout_height = "wrap_content" android: layout_marginLeft = "50.0dip" android: layout_marginTop = "50.0dip" android: layout_marginRight = "64.0dip" android: layout_alignParentLeft = "true" android: layout_alignParentTop = "true" layout = "@ layout / keyguard_screen_status_land" /> <include android: layout_gravity = "fill" android: id = "@ id / transport" android: layout_width = "fill_parent" android: layout_height = "512.0dip" android: layout_column = "0" android: layout_row = "0" android: layout_rowSpan = "3" android: layout_columnSpan = "1" layout = "@ layout / keyguard_transport_control" /> </ RelativeLayout> </ RelativeLayout> <RelativeLayout android: gravity = "center" android: layout_width = "0.0dip" android: layout_height = "fill_parent" android: layout_weight = "0.58"> <Textview android: textAppearance = "? textAppearanceMedium" android: gravity = "center" android: id = "@ id / screenLocked" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "12.0dip" android: drawablePadding = "4.0dip" android: layout_alignParentLeft = "true" android: layout_alignParentTop = "true" /> <com.android.internal.widget.multiwaveview.GlowPadView android: gravity = "center" android: layout_gravity = "right | center" android: id = "@ id / unlock_widget" android: focusable = "true" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: innerRadius = "@ dimen / glowpadview_inner_radius" android: layout_rowSpan = "7" android: targetDescriptions = "@ array / lockscreen_target_descriptions_with_camera" android: directionDescriptions = "@ array / lockscreen_direction_descriptions" android: outerRingDrawable = "@ drawable / ic_lockscreen_outerring" android: pointDrawable = "@ drawable / ic_lockscreen_glowdot" android: glowRadius = "@ dimen / glowpadview_glow_radius" android: targetDrawables = "@ array / lockscreen_targets_with_camera" android: handleDrawable = "@ drawable / ic_lockscreen_handle" android: outerRadius = "@ dimen / glowpadview_target_placement_radius" android: vibrationDuration = "20" android: snapMargin = "@ dimen / glowpadview_snap_margin" android: feedbackCount = "1" /> <Button android: id = "@ id / emergencyCallButton" android: visibility = "gone" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginRight = "80.0dip" android: layout_marginBottom = "80.0dip" android: drawableLeft = "@ drawable / ic_emergency" android: drawablePadding = "8.0dip" android: layout_alignParentRight = "true" android: layout_alignParentBottom = "true" style = "@ style / Widget.Button.Transparent" /> </ RelativeLayout> </ LinearLayout> We look atgreen letters. They tell us that the root container has been created to full screen. Spraboutsieve why the whole? I answer: Lookblue letters. This inscription reads. Create a root container for maximum (fill_parent) width and maximum (fill_parent) height. Inside the created root container everything will go horizontally (see pink letters). What will we do? 3. ChangeLinearlayout android: orientation = "horizontal"onLinearlayout android: orientation = "vertical". Ie in the created root container, everything will be vertically (read red letters) 4. Further we see that inside the created root container, 2 more (two) containers will be created (brown letters), which are located one, under another (read red letters). The relative location of the containers, given their weight (yellow letters). 5. See the following: android: layout_width = "0.0dip" android: layout_height = "fill_parent" occurs in two places change for this, also in two places android: layout_width = "fill_parent" android: layout_height = "0.0dip" Why and for what it, I'm sorry, did not understand. If not changed, nothing will be visible. 6. Hang items in containers, will be in the center. This is stated hereRelativeLayoutandroid: gravity = "center". You can do soRelativeLayoutandroid: gravity = "left"(center left) orRelativeLayoutandroid: gravity = "right"(center right). Also, there are words"top", "bottom"This you can choose 7. In the first container, two more sub-containers were crammed (one for hours (orange letters), the second for music (I will consider in another lesson)). The subcontainer for hours will be developed on all width and minimum-necessary height for filling (wrap_content). There is an additional field, starting with the wordsmargin, translated into our means how muchdipadd right, left, bottom and top. It will not allow the clock to cling to the very edge, ifRelativeLayoutandroid: gravity = "right". It will be like this If you still need to press, then set the appropriate values ​​in0.0.dip It will turn out like this 8. With this file, like everything. As a result, we get this Let's just say NOT ICE. Go to another file PART TWO 1. res / layout-sw600dp / keyguard_screen_status_land.xml 2. See it <? xml version = "1.0" encoding = "utf-8"?> <Linearlayout android: gravity = "right" android: orientation = "vertical" android: layout_width = "wrap_content" android: layout_height = "wrap_content" xmlns: android = "http://schemas.android.com/apk/res/android "> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "16.0sp" android: ellipsize = "marquee" android: id = "@ id / carrier" android: visibility = "gone" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "32.0dip" android: singleLine = "true" android: drawablePadding = "4.0dip" /> <com.android.internal.widget.DigitalClock android: id = "@ id / time" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "8.0dip" android: layout_marginBottom = "8.0dip"> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "@ dimen / keyguard_pattern_unlock_clock_font_size" android: textColor = "@ color / lockscreen_clock_background" android: ellipsize = "none" android: id = "@ id / timeDisplayBackground" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginBottom = "6.0dip" android: singleLine = "true" /> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "@ dimen / keyguard_pattern_unlock_clock_font_size" android: textColor = "@ color / lockscreen_clock_foreground" android: ellipsize = "none" android: id = "@ id / timeDisplayForeground" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginBottom = "6.0dip" android: singleLine = "true" android: layout_alignLeft = "@ id / timeDisplayBackground" android: layout_alignTop = "@ id / timeDisplayBackground" /> </com.android.internal.widget.DigitalClock> <Linearlayout android: orientation = "horizontal" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "10.0dip" android: layout_below = "@ id / time"> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "32.0sp" android: textColor = "@ color / lockscreen_clock_foreground" android: id = "@ id / date" android: layout_width = "wrap_content" android: layout_height = "wrap_content" /> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "32.0sp" android: textColor = "@ color / lockscreen_clock_foreground" android: id = "@ id / alarm_status" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginLeft = "16.0dip" android: drawablePadding = "4.0dip" /> </ LinearLayout> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "32.0sp" android: textColor = "@ color / lockscreen_clock_foreground" android: id = "@ id / status1" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "10.0dip" /> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "16.0sp" android: textColor = "@ color / lockscreen_owner_info" android: id = "@ id / propertyOf" android: visibility = "invisible" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "20.0dip" android: singleLine = "false" android: lineSpacingExtra = "8.0dip" /> </ LinearLayout> 3. The first thing that catches your eye isLinearLayout android: gravity = "right". Align the watch on the right. Quickly change itLinearLayout android: gravity = "right"onLinearLayout android: gravity = "center". Clock must stand in the center. 4. The next block (pink color). Responsible for the withdrawal of the cellular operator. This line saysandroid: id = "@ id / carrier"In this case, it is invisible because of this line.android: visibility = "gone". Many ask how to move the cellular operator (from right to left). I can only assume that this is done by adding a line to this block. android: layout_gravity = "right" or android: layout_gravity = "left" 5. The next block (Orange) is responsible for the color of the lockscreen clock. I described this lesson seeEditing framework-res.apk (Post # 21939358) 6. The next block (green) is responsible for the date inscription (stringandroid: id = "@ id / date") and alarm clock (lineandroid: id = "@ id / alarm_status"). As seen from<LinearLayout android: orientation = "horizontal", the text located under the clock will be arranged in a line, becauseandroid: orientation = "horizontal". I didn't like it, so I changed it.android: orientation = "vertical". Now the date and alarm lines will be one below the other. 7. Now we make this manipulation. Take the last black block and place it like this. It was <Linearlayout android: orientation = "horizontal" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "10.0dip" android: layout_below = "@ id / time"> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "32.0sp" android: textColor = "@ color / lockscreen_clock_foreground" android: id = "@ id / date" android: layout_width = "wrap_content" android: layout_height = "wrap_content" /> <TextVie android: textAppearance = "? textAppearanceMedium" android: textSize = "32.0sp" android: textColor = "@ color / lockscreen_clock_foreground" android: id = "@ id / alarm_status" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginLeft = "16.0dip" android: drawablePadding = "4.0dip" /> </ LinearLayout> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "32.0sp" android: textColor = "@ color / lockscreen_clock_foreground" android: id = "@ id / status1" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "10.0dip" /> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "16.0sp" android: textColor = "@ color / lockscreen_owner_info" android: id = "@ id / propertyOf" android: visibility = "invisible" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "20.0dip" android: singleLine = "false" android: lineSpacingExtra = "8.0dip" /> </ LinearLayout> It became <Linearlayout android: orientation = "horizontal" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "10.0dip" android: layout_below = "@ id / time"> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "32.0sp" android: textColor = "@ color / lockscreen_clock_foreground" android: id = "@ id / date" android: layout_width = "wrap_content" android: layout_height = "wrap_content" /> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "32.0sp" android: textColor = "@ color / lockscreen_clock_foreground" android: id = "@ id / alarm_status" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginLeft = "16.0dip" android: drawablePadding = "4.0dip" /> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "32.0sp" android: textColor = "@ color / lockscreen_clock_foreground" android: id = "@ id / status1" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "10.0dip" /> <Textview android: textAppearance = "? textAppearanceMedium" android: textSize = "16.0sp" android: textColor = "@ color / lockscreen_owner_info" android: id = "@ id / propertyOf" android: visibility = "invisible" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginTop = "20.0dip" android: singleLine = "false" android: lineSpacingExtra = "8.0dip" /> </ LinearLayout> </ LinearLayout> 8. Did this in order to charge information (android: id = "@ id / status1"), and add. information(android: id = "@ id / propertyOf"), did not hang around the screen, but was strictly under the clock. 9. After all we get PART THREE We will register the full date. We have such a disgrace (see upper right corner) Will do it 1. Unpack framework-res.apk 2. Go here res / values-en / strings.xml 3. Open it. We find such a block and pay attention to .... (bold) <string name = "same_year_mdy1_mdy2">% 3 $ s% 2 $ s -% 8 $ s% 7 $ s% 9 $ syear</ string> <string name = "same_month_mdy1_mdy2">% 3 $ s-% 8 $ s% 2 $ s% 9 $ syear</ string> <string name = "same_year_wday1_mdy1_wday2_mdy2">% 3 $ s% 2 $ s -% 8 $ s% 7 $ s% 9 $ syear</ string> <string name = "short_format_month">% b</ string> <string name = "full_wday_month_day_no_year">EEEE d MMMM</ string> <string name = "abbrev_wday_month_day_no_year">EEE d MMMM</ string> <string name = "abbrev_wday_month_day_year">E, d MMM yyyy</ string> 4. Do this (bold) <string name = "same_year_mdy1_mdy2">% 3 $ s% 2 $ s -% 8 $ s% 7 $ s% 9 $ syear.</ string> <string name = "same_month_mdy1_mdy2">% 3 $ s-% 8 $ s% 2 $ s% 9 $ syear.</ string> <string name = "same_year_wday1_mdy1_wday2_mdy2">% 3 $ s% 2 $ s -% 8 $ s% 7 $ s% 9 $ syear.</ string> <string name = "short_format_month">% b</ string> <string name = "full_wday_month_day_no_year">EEEE d MMMM yyyy</ string> <string name = "abbrev_wday_month_day_no_year">EEEE d MMMM yyyy</ string> <string name = "abbrev_wday_month_day_year">EEEE d MMMM yyyy</ string> Deciphering letters E, y, M, dhere FUUUUUUUUUUUUUUU-xxxxxxxxxxxxxxxxxx If that is not clear, write. With the accumulation of questions I will edit the material. Thank you Specific topic Editing framework-res.apk http://devpad.ru/ http://developer.android.com http://google.ru as well as tipssk0t for the first tips on androidfreezenook for help with screenshotstwin111 P.SRemoved translucency in android.policy.jar. Path android.policy \ smali \ com \ android \ internal \ policy \ impl \ KeyguardViewBase.smali # static fields .field private static finalBACKGROUND_COLOR: I = 0x70000000- it is color of blackout Addition Post has been editedRegnits - 22.03.16, 06:40 Reason for editing: * -------------------- Archos 101 G9 Turbo FS 16 GB Android 4.0.4 (ICS) 4.0.28 BUILD 4 Samsung Galaxy S3 Duos GT-I9300I |
Message#40 09.06.13, 08:56 | |
Local [offline] Group: Friendssavagemessiahzine.com Messages 200 Check in: 21.11.12 Samsung Galaxy S3 GT-I9300 Reputation: 74 | Transparency Status bar Many wrote how to make a transparent Status Bar, but I did not succeed. I decided to figure it out. I post my research. Maybe someone will help. True while for ICS :-( First step Need SystemUI 1. We disassemble SystemUI 2. Go to SystemUI \ smali \ com \ android \ systemui \ statusbar \ statusbar.smali 3. Focus on the selected (bold) text (we search by text) 4. Go down the handles on the code and get to it (Blue colour) const-string v4, "StatusBar" invoke-virtual {v11, v4}, Landroid / view / WindowManager $ LayoutParams; ->setTitle (Ljava / lang / CharSequence;) V .line 152 move-object / from16 v0, p0 iget-object v4, v0, Lcom / android / systemui / SystemUI; ->mContext: Landroid / content / Context; invoke-virtual {v4}, Landroid / content / Context; ->getPackageName () Ljava / lang / String; move-result-object v4 iput-object v4, v11, Landroid / view / WindowManager $ LayoutParams; ->packageName: Ljava / lang / String; .line 153 const v4,0x7f0c0009 iput v4, v11, Landroid / view / WindowManager $ LayoutParams; ->windowAnimations: I .line 154 invoke-static {}, Landroid / view / WindowManagerImpl; ->getDefault () Landroid / view / WindowManagerImpl; move-result-object v4 move-object / from16 v0, v21 invoke-virtual {v4, v0, v11}, Landroid / view / WindowManagerImpl; ->addView (Landroid / view / View; Landroid / view / ViewGroup $ LayoutParams;) V .line 166 new-instance v4, Lcom / android / systemui / statusbar / DoNotDisturb; move-object / from16 v0, p0 iget-object v5, v0, Lcom / android / systemui / SystemUI; ->mContext: Landroid / content / Context; invoke-direct {v4, v5}, Lcom / android / systemui / statusbar / DoNotDisturb; -><init>(Landroid / content / Context;) V move-object / from16 v0, p0 iput-object v4, v0, Lcom / android / systemui / statusbar / StatusBar; ->mDoNotDisturb: Lcom / android / systemui / statusbar / DoNotDisturb; .line 167 return-void .line 129 .end local v11 #lp: Landroid / view / WindowManager $ LayoutParams; .end local v18 #defaultDisplay: Landroid / view / Display; : cond_7 new-instance v11, Landroid / view / WindowManager $ LayoutParams; const / 4 v12, -0x1 const / 16 v14, 0x7d0 const v15, 0x1800048 const / 16 v16, -0x1 5. Change the blue text on this onered const / 4 v12, -0x1 const / 16 v14, 0x800 � const v15, 0x1800048- this thing, the visibility of hours, and graphics (back, home, latest applications). If you put 0x18048, then the graph will disappear, but the buttons will be pressed const / 16 v16, 0x7transparency, any change to another digit, gave a black color, although it may not be completely black(it is possible that this is the type of color), if you leave 0x1 will be the same effect 6. Turn out so const-string v4, "StatusBar" invoke-virtual {v11, v4}, Landroid / view / WindowManager $ LayoutParams; ->setTitle (Ljava / lang / CharSequence;) V .line 152 move-object / from16 v0, p0 iget-object v4, v0, Lcom / android / systemui / SystemUI; ->mContext: Landroid / content / Context; invoke-virtual {v4}, Landroid / content / Context; ->getPackageName () Ljava / lang / String; move-result-object v4 iput-object v4, v11, Landroid / view / WindowManager $ LayoutParams; ->packageName: Ljava / lang / String; .line 153 const v4,0x7f0c0009 iput v4, v11, Landroid / view / WindowManager $ LayoutParams; ->windowAnimations: I .line 154 invoke-static {}, Landroid / view / WindowManagerImpl; ->getDefault () Landroid / view / WindowManagerImpl; move-result-object v4 move-object / from16 v0, v21 invoke-virtual {v4, v0, v11}, Landroid / view / WindowManagerImpl; ->addView (Landroid / view / View; Landroid / view / ViewGroup $ LayoutParams;) V .line 166 new-instance v4, Lcom / android / systemui / statusbar / DoNotDisturb; move-object / from16 v0, p0 iget-object v5, v0, Lcom / android / systemui / SystemUI; ->mContext: Landroid / content / Context; invoke-direct {v4, v5}, Lcom / android / systemui / statusbar / DoNotDisturb; -><init>(Landroid / content / Context;) V move-object / from16 v0, p0 iput-object v4, v0, Lcom / android / systemui / statusbar / StatusBar; ->mDoNotDisturb: Lcom / android / systemui / statusbar / DoNotDisturb; .line 167 return-void .line 129 .end local v11 #lp: Landroid / view / WindowManager $ LayoutParams; .end local v18 #defaultDisplay: Landroid / view / Display; : cond_7 new-instance v11, Landroid / view / WindowManager $ LayoutParams; const / 4 v12, -0x1 const / 16 v14, 0x800 const v15, 0x1800048 const / 16 v16, 0x7 Second step The simplest remains 1. Find this file res \ values-sw600dp \ drawable.xml <? xml version = "1.0" encoding = "utf-8"?> <resources> <item type = "drawable" name = "status_bar_background"># ff000000</ item> <item type = "drawable" name = "notification_icon_area_smoke"># aa000000</ item> </ resources> 2. Change, what is highlighted in bold, on#00000000(fully transparent). You can set your color and transparency 3. We will receive <? xml version = "1.0" encoding = "utf-8"?> <resources> <item type = "drawable" name = "status_bar_background">#00000000</ item> <item type = "drawable" name = "notification_icon_area_smoke"># aa000000</ item> </ resources> 4. Find such a file in SystemUI res \ layout-sw600dp \ status_bar.xml 5. Find such a code (at the bottom). Landmark, highlighted text <FrameLayout android: layout_gravity = "bottom" android: id = "@ id / bar_shadow_holder" android: layout_width = "fill_parent" android: layout_height = "@ * android: dimen / status_bar_height"> <RelativeLayout android: id = "@ id / bar_shadow" android: background = "# ff000000"android: visibility =" gone "android: layout_width =" fill_parent "android: layout_height =" fill_parent "> <ImageView android: id = "@ id / dot0" android: layout_width = "80.0dip" android: layout_height = "48.0dip" android: src = "@ drawable / ic_sysbar_lights_out_dot_small" android: layout_alignParentLeft = "true" android: layout_alignParentBottom "/> <ImageView android: id = "@ id / dot1" android: layout_width = "80.0dip" android: layout_height = "48.0dip" android: src = "@ drawable / ic_sysbar_lights_out_dot_large" android: layout_toRightOf = "@ id / dot0" android: layout_alignParent = "true" /> <ImageView android: id = "@ id / dot2" android: layout_width = "80.0dip" android: layout_height = "48.0dip" android: src = "@ drawable / ic_sysbar_lights_out_dot_small" android: layout_toRightOf = "@ id / dot1" android: layout_alignParent = "true" /> <ImageView android: id = "@ id / dot3" android: layout_width = "80.0dip" android: layout_height = "48.0dip" android: src = "@ drawable / ic_sysbar_lights_out_dot_small" android: layout_alignParentRight = "true" android: layout_alignParentBottom = "/> </ RelativeLayout> </ Framelifeout> </com.android.systemui.statusbar.tablet.TabletStatusBarView> 6. Change what is highlighted in bold to#00000000(fully transparent). You can set your color and transparency 7. We collect 8. Replace 9. Install 10. We are happy P.S. Status Bar disappearsonly when you flip the screen on your desktop(means that if after unlocking the screen you rotate the tablet or body, it will disappear)in applications does not disappearthough twist ScreenshotsEditing framework-res.apk Post has been editedDimar - 07.11.15, 20:59 Reason for editing: * -------------------- Archos 101 G9 Turbo FS 16 GB Android 4.0.4 (ICS) 4.0.28 BUILD 4 Samsung Galaxy S3 Duos GT-I9300I |
Message#41 09.06.13, 23:55 | |
Perfectionism guru [offline] Group: Curators Messages 2988 Check in: 04.09.10 Honor 9 lite Reputation: 613 | Line by line lockscreen description lockscreen <? xml version = "1.0" encoding = "utf-8"?> <RelativeLayout android: gravity = "center_horizontal" # container full screen android: id = "@ id / root" android: background = "# 70000000"# background image transparency # 00000000 - transparent android: layout_width = "fill_parent"# stretched to full screen width android: layout_height = "fill_parent"# stretched to full screen height xmlns: android = "http://schemas.android.com/apk/res/android " xmlns: tabunlock = "http://schemas.android.com/apk/res/com.android.tabunlock "> ------------------ <TextView android: textAppearance = "? Android: textAppearanceMedium"# operator name (here) android: ellipsize = "marquee"# with long title scrolls in a string android: gravity = "bottom | right | center"# position in the container (in the button | on the right | center) <! - android: gravity = "center" -># position in the container in the center android: id = "@ id / carrier" android: layout_width = "wrap_content"# required width to fill android: layout_height = "wrap_content"# required height to fill android: layout_marginTop = "2.0dip"# indents on top android: layout_marginRight = "8.0dip"# indent right android: singleLine = "true"# scrolls in the true row — yes, false — no android: layout_alignParentTop = "true"# alignment ? android: layout_alignParentRight = "true" /># right alignment <! - android: layout_centerHorizontal = "true" -># centered ------------------ <com.lge.internal.widget.Andy_DigitalClock android: id = "@ id / time"#clock android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_marginLeft = "20.0dip"# replace the line below <! - android: layout_centerHorizontal = "true" -># centered android: layout_marginTop = "52.0dip" android: layout_marginBottom = "4.0dip" android: layout_below = "@ id / carrier"> ------------------ <TextView android: textAppearance = "? Android: textAppearanceMedium" # android: textSize = "100.0sp"# size of hours android: gravity = "bottom" android: id = "@ id / timeDisplay" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: shadowColor = "# c0000000"# watch shadow color android: shadowDx = "0.0" android: shadowDy = "0.0" android: shadowRadius = "3.0" /># radius of watch shadow Post has been editedDimar - 29.11.15, 17:20 -------------------- |
mobile version | Now: 04/30/19 6:47 PM |