FORUMS
Remove All Ads from XDA

[MOD][HOW-TO] Imaged Battery for 4.4.2 KitKat NA6/NA7/NB3

17 posts
Thanks Meter: 61
 
By parkhyb, Junior Member on 29th January 2014, 11:05 AM
Post Reply Email Thread
This guide is not for a noob in editing.
Tried yourself, first you need to understand relation between public values in smali and xml.

Modified SystemUI for N9005XXUENA6/NA7/NB3 is at post #2 (Flashable)


As we already know, the battery signal of statusbar on Sammy KitKat Firmware is not images but coded one.
That is one of Google's operations in Android 4.4, but make difficulties with theming or customising.
So I modified it back to images to be possible for the methods that you have used on Android 4.3


This guide requires following things:
• APKtool
• Notepad++ (or AcroEdit, etc.)
• deodexed SystemUI.apk
• drawables.zip (attachment)
• smali.zip (attachment)


This guide is based on XXUENB3
All the public value is changable things depended on the kind of firmware build.
(Don't care about that if you're on XXUENB3)

Red text is to be removed
Blue text is to be added


1. Decompile SystemUI.apk using APKtool


2. Extract two folders in drawables.zip


3. Move and overwrite two folders(drawable, drawable-xxhdpi) to SystemUI\res\


4. Open SystemUI\res\layout\status_bar.xml in Notepad++

Find @id/battery
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:paddingStart="2.0dip">
        <include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/signal_cluster_view" />
        <TextView android:textSize="@dimen/status_bar_battery_text_size" android:textColor="#ffffffff" android:layout_gravity="center" android:id="@id/battery_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_network_name_separator" android:layout_marginStart="@dimen/status_bar_battery_text_marginStart" />
        <com.android.systemui.BatteryMeterView android:id="@id/battery" android:layout_width="12.0dip" android:layout_height="18.0dip" android:layout_marginBottom="0.33000004dip" android:layout_marginStart="5.0dip" />
    </LinearLayout>
  ...
change like this
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:paddingStart="2.0dip">
        <include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/signal_cluster_view" />
        <TextView android:textSize="@dimen/status_bar_battery_text_size" android:textColor="#ffffffff" android:layout_gravity="center" android:id="@id/battery_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_network_name_separator" android:layout_marginStart="@dimen/status_bar_battery_text_marginStart" />
        <ImageView android:gravity="center" android:id="@id/battery" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="1.0dip" android:layout_marginStart="2.0dip" />
    </LinearLayout>
  ...

5. Open SystemUI\res\values\public.xml in Notepad++

Find quick_setting_button_divider_bg
Code:
    <public type="drawable" name="quick_setting_button_divider_bg" id="0x7f020281" />
    <public type="drawable" name="notification_panel_bg" id="0x7f0200a4" />
    <public type="drawable" name="tw_quick_panel_quick_setting_button_bg_normal" id="0x7f020228" />
  ...
add like this
Code:
    <public type="drawable" name="quick_setting_button_divider_bg" id="0x7f020281" />
    <public type="drawable" name="tw_stat_sys_battery" id="0x7f020283" />
    <public type="drawable" name="tw_stat_sys_battery_charge" id="0x7f020290" />
    <public type="drawable" name="tw_stat_sys_battery_not_charge" id="0x7f02029a" />
    <public type="drawable" name="tw_stat_sys_battery_red" id="0x7f0202a4" />
    <public type="drawable" name="tw_stat_sys_battery_usb_not_charge" id="0x7f0202a5" />
    <public type="drawable" name="notification_panel_bg" id="0x7f0200a4" />
    <public type="drawable" name="tw_quick_panel_quick_setting_button_bg_normal" id="0x7f020228" />
  ...

6. Extract BatteryController.smali in smali.zip


7. Move and overwrite BatteryController.smali to SystemUI\smali\com\android\systemui\statusbar\poli cy\
(All the public value in BatteryController.smali is matched with values in default public.xml or what we added to public.xml just before.)


8. Open SystemUI\smali\com\android\systemui\statusbar\poli cy\BatteryController$BatteryStateChangeCallback.smali in Notepad++
Code:
# virtual methods
.method public abstract onBatteryLevelChanged(IZ)V
.end method
change like this
Code:
# virtual methods
.method public abstract onBatteryLevelChanged(IZI)V
.end method

9. Open SystemUI\smali\com\android\systemui\statusbar\phon e\PhoneStatusBar.smali in Notepad++

Find Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryController
Code:
    iput-object v0, v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryController:Lcom/android/systemui/statusbar/policy/BatteryController;

    .line 727
    new-instance v25, Lcom/android/systemui/statusbar/policy/SmartBondingController;

    move-object/from16 v0, p0
  ...
add like this
Code:
    iput-object v0, v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryController:Lcom/android/systemui/statusbar/policy/BatteryController;

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryController:Lcom/android/systemui/statusbar/policy/BatteryController;

    move-object/from16 v26, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarView:Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;

    move-object/from16 v25, v0

    const v27, 0x7f070077

    move-object/from16 v0, v25

    move/from16 v1, v27

    invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;->findViewById(I)Landroid/view/View;

    move-result-object v25

    check-cast v25, Landroid/widget/ImageView;

    move-object/from16 v0, v26

    move-object/from16 v1, v25

    invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/policy/BatteryController;->addIconView(Landroid/widget/ImageView;)V

    .line 727
    new-instance v25, Lcom/android/systemui/statusbar/policy/SmartBondingController;

    move-object/from16 v0, p0
  ...
0x7f070077 is a public id value of "battery"
<public type="id" name="battery" id="0x7f070077" />


Find iput-object v0, v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryText
Code:
    iput-object v0, v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryText:Landroid/widget/TextView;

    .line 731
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;
  ...
add like this
Code:
    iput-object v0, v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryText:Landroid/widget/TextView;

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryController:Lcom/android/systemui/statusbar/policy/BatteryController;

    move-object/from16 v25, v0

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryText:Landroid/widget/TextView;

    move-object/from16 v26, v0

    invoke-virtual/range {v25 .. v26}, Lcom/android/systemui/statusbar/policy/BatteryController;->addLabelView(Landroid/widget/TextView;)V

    .line 731
    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;
  ...

Editing's all done.
Recompile and put in your Note.

Now we have the battery of JB 4.3

This means you can change battery images,
and make all of 1% batteries as you want!
Attached Thumbnails
Click image for larger version

Name:	20-05-23.png
Views:	9613
Size:	21.4 KB
ID:	2546825  
Attached Files
File Type: zip drawables.zip - [Click for QR Code] (24.7 KB, 2443 views)
File Type: zip smali.zip - [Click for QR Code] (2.8 KB, 1826 views)
The Following 44 Users Say Thank You to parkhyb For This Useful Post: [ View ] Gift parkhyb Ad-Free
 
 
29th January 2014, 11:09 AM |#2  
OP Junior Member
Thanks Meter: 61
 
More
Imaged Battery Mod for N9005XXUENA6/NA7/NB3

(Updated 15-02-2014)
The Following 9 Users Say Thank You to parkhyb For This Useful Post: [ View ] Gift parkhyb Ad-Free
29th January 2014, 12:56 PM |#3  
Junior Member
Thanks Meter: 2
 
More
Quote:
Originally Posted by parkhyb

Imaged Battery Mod for N9005XXUENA6


thanks mate
The Following 2 Users Say Thank You to ogez83 For This Useful Post: [ View ] Gift ogez83 Ad-Free
29th January 2014, 01:58 PM |#4  
nguyenxuanhoa's Avatar
Senior Member
Flag hanoi
Thanks Meter: 2,903
 
Donate to Me
More
Thask for guider
It good for me

Click image for larger version

Name:	uploadfromtaptalk1391000313932.jpg
Views:	8150
Size:	90.4 KB
ID:	2546564

Gửi từ SM-N900 của tôi bằng cách sử dụng Tapatalk
The Following 5 Users Say Thank You to nguyenxuanhoa For This Useful Post: [ View ] Gift nguyenxuanhoa Ad-Free
29th January 2014, 05:46 PM |#5  
OP Junior Member
Thanks Meter: 61
 
More
Quote:
Originally Posted by nguyenxuanhoa

Thask for guider
It good for me

Gửi từ SM-N900 của tôi bằng cách sử dụng Tapatalk

Did you complete VN battery already?
Awesome
The Following 2 Users Say Thank You to parkhyb For This Useful Post: [ View ] Gift parkhyb Ad-Free
29th January 2014, 06:11 PM |#6  
nguyenxuanhoa's Avatar
Senior Member
Flag hanoi
Thanks Meter: 2,903
 
Donate to Me
More
Quote:
Originally Posted by parkhyb

Did you complete VN battery already?
Awesome

I have completed .. Thank you again

Gửi từ SM-N900 của tôi bằng cách sử dụng Tapatalk
The Following User Says Thank You to nguyenxuanhoa For This Useful Post: [ View ] Gift nguyenxuanhoa Ad-Free
29th January 2014, 10:05 PM |#7  
tkari4's Avatar
Senior Member
Thanks Meter: 6,996
 
More
Quote:
Originally Posted by parkhyb

Imaged Battery Mod for N9005XXUENA6



Just as info.

On 360 Dpi I must keep the margin.

without: android:layout_marginStart="5.0dip"



With margin:
The Following 3 Users Say Thank You to tkari4 For This Useful Post: [ View ] Gift tkari4 Ad-Free
30th January 2014, 12:22 PM |#8  
dr.ketan's Avatar
Recognized Developer / Recognized Contributor
Flag Gujarat
Thanks Meter: 52,643
 
Donate to Me
More
Quote:
Originally Posted by tkari4

Just as info.

On 360 Dpi I must keep the margin.[/IMG]

Indeed any Dpi

Sent from my SM-N900 using xda premium
The Following User Says Thank You to dr.ketan For This Useful Post: [ View ]
30th January 2014, 06:32 PM |#9  
Junior Member
Thanks Meter: 4
 
More
How to use the mod
Quote:
Originally Posted by parkhyb

Imaged Battery Mod for N9005XXUENA6



Hello, sorry I'm a newbie but how to use the "Imaged Battery Mod for N9005XXUENA6" file after you install it?

thank you in advance
30th January 2014, 07:13 PM |#10  
dr.ketan's Avatar
Recognized Developer / Recognized Contributor
Flag Gujarat
Thanks Meter: 52,643
 
Donate to Me
More
Quote:
Originally Posted by stephane091



Hello, sorry I'm a newbie but how to use the "Imaged Battery Mod for N9005XXUENA6" file after you install it?

thank you in advance

You have nothing to do, once you install your battery will be same like on 4.3 (if @parkhyb have attached mod is same mod as per said in guide). Basically this guide is more useful to ROM maker and Theme maker rather than end users except you just want to have same battery like on 4.3
You will get extra benefit that after imaged battery mod some Xposed module should work which not supporting battery mod on 4.4
The Following 3 Users Say Thank You to dr.ketan For This Useful Post: [ View ]
30th January 2014, 07:48 PM |#11  
Junior Member
Thanks Meter: 4
 
More
Thanks exactly xposed module battery are ok
The Following User Says Thank You to stephane091 For This Useful Post: [ View ] Gift stephane091 Ad-Free
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes