본 테마의 강좌는 삼성전자 기기를 기준으로 제작된 강좌입니다.
본 강좌를 직접적으로 수정해서 적용한 기종은 갤럭시노트3, 갤럭시노트2, 갤럭시S4, 갤럭시S4 LTE-A
기종만 테스트 하였습니다. 본 강좌를 본후 적용이 완료된 기종은 아래 댓글로 알려주시면 감사 하겠습니다.
[강좌]안드로이드 4.4 기종 배터리 이미지화 활성화 하기
[준비물]
Apkmanager 5.6
DeoDex된 SystemUI.apk
첨부파일 :
★ apk manager 사용법은 네이버 검색을 통해 사용법을 익히세요!
[1] Apkmanager 5.6으로 Deodex된 SystemUI.apk 를 불러온후 Decompile 합니다.
[2] Decompile 후 첨부 된 파일 drawables.zip 파일을 압축해제한후 drawable 폴더와 drawable-xxhdpi 폴더를 Decompile한 폴더에 붙여넣기 합니다.
[3] 파일을 붙여넣은후 layout폴더의 status_bar.xml 파일을 노트패드(메모장)으로 불러온후 검색(Ctrl + F)에서 id/battery 를 검색합니다.
[4] 위 그림과 같이 해당 라인을 삭제하고 아래의 소스를 넣어줍니다.
[5] apkmanager5.6으로 돌아와 Compile을 해줍니다.
[6] Compile 후 다시 Set current project(22번)을 한후 컴파일된 unsignedSystemUI.apk를 선택합니다.
[7] unsignedSystemUI.apk를 decompile 합니다.
[8] 컴파일한 unsignSystemUI 폴더로 들어간 후 아까 첨부된 파일을 다운받았던 BatteryController.smali 파일을 노트패드(메모장)으로 오픈합니다.
★ 첨부된 smali 의 Public id 값 입니다.
|
[9] 컴파일한 unsignSystemUI 폴더에서 values-public.xml 파일을 엽니다.
[9-1] 찾기(Ctral + F)를 하신후 tw_stat_sys_battery 를 찾습니다.
ex)
[9-2] 찾은 파일의 id 값을 메모해 둡니다. 첨부된 BatteryController.smali 에서 찾기(Ctrl + F)를 하신후 0x7f020288 를 검색하시고
검색된 해당 라인의 0x7f020288 를 아까 메모해둔 id값으로 바꿔줍니다.
[!]이해하기
첨부된 파일의 tw_stat_sys_battery 의 id 값이 0x7f020288 입니다. 이 부분을 현재 내가 컴파일한 public 의 id값과 동일 해야 배터리 아이콘이 나타납니다. 즉! 0x7f020228을 지금 public id 값이 맞게 수정해주시면됩니다. 현재의 public id 값은 (예) 0x7f02026f 이므로 이렇게 바꿔주면 됩니다.
★ Public id 값에 있는 name의 모든 값을 현재의 Pulbic id 값으로 변경 해주세요 ! |
[10] id값 수정이 끝나셨으면 해당 BatteryController.smali 파일을 디컴파일된 unsignSystemUIsmalicomandroidsystemuistatusbarpolicy 에 붙여 넣기 합니다.
[11] BatteryController$BatteryStateChangeCallback.smali 파일을 노트패드(메모장)으로 불러온후 아래 의 빨간 구문을 파란 구문으로 변경 해줍니다.
# virtual methods |
위 빨간글씨 구문을 아래의 파란글씨 구문으로 바꿔줍니다.
# virtual methods |
[12] SystemUIsmalicomandroidsystemuistatusbarphonePhoneStatusBar.smali 를 Notepad++로 열어줍니다.
찾기를 하셔서 Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryController 를 찾습니다.
iput-object v0, v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryController:Lcom/android/systemui/statusbar/policy/BatteryController; |
아래의 구문처럼 파란글씨를 추가해줍니다.
iput-object v0, v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryController:Lcom/android/systemui/statusbar/policy/BatteryController; |
[13] 찾기를 하셔서 iput-object v0, v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryText 를 찾습니다.
iput-object v0, v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryText:Landroid/widget/TextView; |
아래의 구문처럼 파란글씨를 추가해줍니다.
iput-object v0, v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryText:Landroid/widget/TextView; |
편집을 모두 완료 하였습니다. 다시 컴파일하고 컴파일한 파일을 적용하시면됩니다.
이제 우리는 JB 4.3의 배터리를 이미지로 변경 할 수 있습니다.