푸우♡
14.07.06
조회 수 11546
추천 수 22
댓글 12

본 테마의 강좌는 삼성전자 기기를 기준으로 제작된 강좌입니다.

본 강좌를 직접적으로 수정해서 적용한 기종은 갤럭시노트3, 갤럭시노트2, 갤럭시S4, 갤럭시S4 LTE-A

기종만 테스트 하였습니다. 본 강좌를 본후 적용이 완료된 기종은 아래 댓글로 알려주시면 감사 하겠습니다.

 

[강좌]안드로이드 4.4 기종 배터리 이미지화 활성화 하기

 

 

 

 

[준비물]

 

Apkmanager 5.6

DeoDex된 SystemUI.apk

첨부파일 :

drawables.zip

smali.zip

★ 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
.method public abstract onBatteryLevelChanged(IZ)V
.end method 

 

 

빨간글씨 구문을 아래의 파란글씨 구문으로 바꿔줍니다.

 

# virtual methods
.method public abstract onBatteryLevelChanged(IZI)V
.end method 

 

[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;

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

    move-object/from16 v0, p0
  ... 

 

 

 

아래의 구문처럼 파란글씨를 추가해줍니다. 

 

    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 724
    new-instance v25, Lcom/android/systemui/statusbar/policy/SmartBondingController;

    move-object/from16 v0, p0
  ... 

 

  

[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;

    .line 728
    move-object/from16 v0, p0

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

 

 

아래의 구문처럼 파란글씨를 추가해줍니다. 

 

   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 728
    move-object/from16 v0, p0

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

 

 

 

편집을 모두 완료 하였습니다. 다시 컴파일하고 컴파일한 파일을 적용하시면됩니다.
이제 우리는 JB 4.3 배터리를 이미지로 변경 할 수 있습니다.

 

원문 : http://poodroid.tistory.com/134 

댓글 12
댓글 쓰기 권한이 없습니다.
분류 정렬 목록 검색 쓰기
List of Articles
제목 글쓴이 추천 조회 날짜
샤오미가 구글 플레이 샤오미 코너에 샤오미 체험 홈런처를 올렸습니다 iptime 1 4853 2014.07.24
노트 2 kt 키캣 4.4.2 루팅어떻게 할 수 없나요? 3 오은철 1 3371 2014.07.23
스마트폰을 DSLR 카메라용 무선 리모컨으로 활용하세요! 2 조남식 2 4265 2014.07.19
[뻘팁] 와이파이 잘터지게하는법 16 간단 10 12036 2014.07.19
킷캣 업데이트 후 부팅시 터치위즈 중지 오류 해결법. 11 file 파이팅 7 12382 2014.07.16
강좌 노트3 S/K/L 커스텀롬 설치 강좌 (아직 문제 있습니다) 23 4 14043 2014.07.16
노트2의 대기 밧데리 절전(7시간에 3%소모) 6 가가멜71 4 7335 2014.07.15
towelroot 으로 루팅후 언루팅하기~!! 1 angeli58 5 17712 2014.07.14
강좌 (smali 수정) 킷캣 잠금화면 재생바(seekbar) 항상 보이게 하기 10 세나☆ 6 6464 2014.07.14
잠금화면 추가시, 리붓시, "효과 없음" 으로 돌아오는 부분 픽스 하기 16 JHOLLEH 5 2538 2014.07.13
wanam 2.9.9버젼 HD보이스 사용하기 13 갤3매니 2829 2014.07.12
[분석]Towelroot의 원리와, 최신 펌웨어에서 작동하지 않는 이유. 3 file bestmjh47 8 16032 2014.07.11
갤포아(SKT) 사용하시는분들 나츠밍 1 3015 2014.07.09
towelroot 안되시는분들 여기보세요 7 RVS 6 19843 2014.07.09
SKT, KT 통화품질 향상방법 10 file SGO 12806 2014.07.09
강좌 [강좌]안드로이드 4.4 기종 배터리 이미지화 활성화 하기 12 푸우♡ 22 11546 2014.07.06
강좌 (xml 수정) 상단바 투명 상태에서 시계중앙 강좌 13 세나☆ 14 11416 2014.07.06
원플러스원 (cm11s)잠금화면 적용하기 file PodGom 5 11938 2014.07.06
LG 스마트폰 루팅없이 멀티태스킹창 깔끔하게 하기! 1 조남식 1 12987 2014.07.06
베가 LTE-A 킷켓 루팅하시고 SuperSU 바이너리 업뎃 안되시는분 필독 3 file kw558 5 20809 2014.07.04
강좌 (smali 수정) 킷캣 배터리 이미지화 강좌 24 file 세나☆ 17 12951 2014.07.04
강좌 노트2 킷캣 카메라 무음 활성화 방법 9 지누지눙 19 15510 2014.07.02
노트2 킷켓 카메라 무음 메뉴 활성화 팁 10 file 내가제로 13 6614 2014.07.02
스크 갤포아 업데이트후 1 막심모까 2746 2014.07.01
강좌 초절전모드 사용 가능 어플 추가하기 & 홈 배열 변경하기 7 file 세나☆ 3 20375 2014.06.27
쉘스크립트 실행하기 기본설정 file 짱구삼촌 8 8312 2014.06.27
강좌 [smali] 툴박스 등록 어플 갯수 늘리기 11 file 하얀여우 6 7018 2014.06.27
강좌 갤럭시노트2 킷캣 잠금화면 SeekBar(음악 재생바) 기능 활성화 11 file 젤리베리 20 15759 2014.06.24
제가 올린 폰트 미리 받으신분들 참고 하세요 ^^:: 제가 빠뜨렸네요... 1 file 용이니까 4 6330 2014.06.23
앱자료실에올라왓엇던 갤4용 노트3향 뷰커버을 Xposed 모듈로 조금더 ... 2 file JDHStanDarD 1 3621 2014.06.22
1 - 25 - 135