세나☆
14.07.04
조회 수 12951
추천 수 17
댓글 24





        <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" />

로 수정


6. 여기서 중요합니다. 자신의 apk 매니저의 others 폴더를 봐주세요

baksmali-2.0.3.jar 

smali-2.0.3.jar



이렇게 보이신다면 첨부파일의 smali 1. zip을 이용해주세요.



반대로 그보다 낮은 baksmali-1.4.2.jar 등이 보인다면 smali 2.zip을 이용해주세요.



7. 첨부파일의 스말리를 알맞은 경로에 넣습니다.



8. phonestatusbar.smali 열기



Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryController 검색



검색되어 나오는 줄 바로 아래에



    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, 0x7f08005c 


    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



를 추가


9 iput-object v0, v1, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBatteryText 검색


검색되어 나오는 줄 바로 아래에 


    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


를 추가



10. 나머지는 ID 수정입니다


phonestatusbar.smali의 7f08005c 는 배터리의 ID


BatteryController.smali 의 ID들은 따로 첨부한 public.xml 보고 수정하시면 될겁니다 ^^



결과물











수정 쉬우라고 public.xml 첨부합니다.



 


Extra Form
첨부
Screenshot_2014-07-04-15-05-44.png  [File Size:848.9KB/Download:2]
public.xml  [File Size:144.4KB/Download:104]
smali 1.zip  [File Size:3.3KB/Download:84]
smali 2.zip  [File Size:3.3KB/Download:54]
drawables.zip  [File Size:24.7KB/Download:93]
댓글을 남겨야 다운로드가 가능합니다. 감사의 댓글을 달고 오른쪽 확인버튼을 눌러주세요.
다운로드시 일주일에 한개 이상의 게시물 작성이 필요합니다. 지금 자유게시판에 회원님의 하루를 남겨보세요.
추천♡버튼을 잊지 마세요. 추천인과 회원님 모두 포인트가 적립됩니다.
댓글 24
  • ?
    파이팅
    14.07.04
    좋은 강좌 감사합니다~
  • profile
    MINU♡
    14.07.04
    쉬운강좌 감사합니다^^
  • ?
    Saebyeol
    14.07.04
    이런 좋은 강좌는 굳굳!
  • profile
    음... 이 정도면 매크로 배치 파일을 만들어 볼 수도 있겠다는 생각이 얼핏 드네요. 한방에 완성본을 만들 수도 있겠다 싶기는 합니다. 요즘은 디컴하는 법도 다 까먹은듯 ㅋ
  • ?
    세나™
    14.07.04
    ㅎㄷㄷ;; 그게 가능할까요.. 펌웨어마다 const v숫자 0x7f~~~~~가 전부 제각가인데....
  • profile
    디컴된 결과에서 원하는 부분만 뽑으면 되는거 맞지요? 킷캣 나오면 한번 도전해볼까 하고 생각했는데 ㅋ 제가 뭘 빠뜨린게 있나봐요???
  • ?
    세나™
    14.07.04
    아아아.....잘못 생각햇네요 배치파일 하나로 삼성 킷캣 전부 완성본을 만든다라는 생각을... 한 기종의 펌웨어에 대해서는 가능할것도 같은데 저는 방법을 모르니 ㅎ;
  • profile
    제가 지금 쓰는 방법은 엑셀에서 VBA 돌려서 이미지 투척 + 스말리 수정 + xml 색상 코드 변경 등등을 한방에 하는 어플이 서너개 있는데 그걸 좀 도 확장하면 될것도 같고 ㅋ 굳이 VBA 안가도 배치파일로도 될거 같은데 말입니다. ㅋ
  • ?
    세나™
    14.07.04
    시스템UI라는 재료를 배치파일이라는 오븐을 통해 빵(?)을 구워내는 셈이네요.. 되면 펌웨어가 업뎃해도 상관없게 작업에 편리함이 생기겠습니다.....ㄷ;;
  • ?
    Jakiejake
    14.07.04
    세나님 강좌 지금봤네요!...... 지금 한번 시도해봐야겠습니다.
  • ?
    방울새
    14.07.04
    ID 값 수정 부분이 이해가 안되요 ㅠㅠ
  • profile
    MINU♡
    14.07.04
    퍼블릭에잇는아이디값과 스말리의아이디값이일치해야 이미지가나타납니다
  • profile
    킷캣 배터리 이미지화 작업만이라도 짱구삼촌님의 숨겨둔(?)어플이나 또는 새로운 배치파일을 통해서 쉽게 한방에 가능해진다면, SignCopy나 ReDeodexer를 능가하는 폭발적인 관심과 호응,그리고 실제 많은분들에게 도움이 될것같네요.^^
  • ?
    세나™
    14.07.04
    푸우님이 대신 말해주셧네요 ㅎ;;;
  • profile
    사실 디컴이후에 우리가 할 수 있는 작업들은 이미지를 제외하면 모두가 텍스트 파일 (xml, smali) 수정이지요. 잠시 첨부파일 열어봤습니다. ^^* smali1,2 차이점은 쌍따옴표 유무 차이인거 같구요. 이미지들 파일과 배터리 관련 xml 이 있네요. 윈도우에서 텍스트 파일 수정할 때 줄바꿈 문자를 리눅스용으로 바꿔주는것만 하면 문제는 없을 거 같습니다. 다만 ID 값 수정을 제가 해본 적이 없어서 직접 몇번 해보면 답이 있을거 같네요. 하는 김에 1% 배터리도 옵션으로 넣어주면 좋을거 같구요. ^^*
  • profile
    이 분야 고수는 아닙니다만 제가 이해하고 있는 부분을 조금 덧붙입니다. 컴파일 과정에서 aapt (android asset package tool)는 구성 내용물에 id 값을 부여합니다. 그 말은 기종이나 펌웨어마다 각각의 개체가 다른 id 값을 가지게 된다는 의미 입니다. 특히 이거저거 추가해서 넣으면 달라집니다. phonestatusbar.smali 와 BatteryController.smali 새롭게 추가한 구문에는 이 아이디값이 들어 있습니다. phonestatusbar.smali 에 있는 0x7f08005c 를 본인이 디컴한 public.xml 에서 battery 에 해당하는 값을 찾아서 직접 수정해줘야 한다는 말이 됩니다. 디컴된 본인의 public.xml 이 그 apk 구성 내용물을 보여주는 것이기 때문이겠지요. 같은 방법으로 BatteryController.smali 에 있는 9개의 id 값을 본인이 수정해야 합니다. 0x7f02026f 는 퍼블릭에서 tw_stat_sys_battery 에 해당하는 값을 가져와야 합니다. 0x7f02027c tw_stat_sys_battery_charge 0x7f020290 tw_stat_sys_battery_red 0x7f020255 tw_stat_sys_battery_incompatible_vzw 0x7f0b008d accessibility_battery_level 0x7f020291 tw_stat_sys_battery_usb_not_charge 0x7f020286 0x7f020286 tw_stat_sys_battery_not_charge 0x7f0b0027 status_bar_settings_battery_meter_format 일단 제가 이해한 부분은 여기까지 입니다. ^^* 킷캣 나오면 자동화에 한번 도전해보려고 오늘 살펴본 내용이네요. ^^*
  • ?
    세나™
    14.07.05
    smali 1,2 차이점은.. param 과 parameter 등 몇몇 구문의 표기방식이 달라.......기존의 표기방식과 다르면 오류가 나더라구요~
  • ?
    Jakiejake
    14.07.05
    drawables.zip의 리소스들을 넣고 컴파일 하는 과정에서 오류가떠버리네요 ㅠㅠ
  • ?
    Jakiejake
    14.07.05
    http://www.matcl.com/?m=bbs&bid=usermoim&cat=%EC%A7%88%EB%AC%B8&uid=230636
  • ?
    First2011
    14.08.13
    세나님 감사합니다 덕분에 겔포아에 1%배터리 쉽게 붙였습니다
  • profile
    정상적으로 된거같긴한데 배터리충전할때 계속 배터리풀충에 X표시 계속뜨네요 배터리가 거의 없는데도 불구하고.. 이유가 뭘까요? xml이 꼬인건가요? 아니면 id값을 잘못입력한걸까요?
  • ?
    세나™
    14.09.25
    xml이 꼬일일은 없을것같고..후자 같네요
  • ?
    감사합니다!!
댓글 쓰기 권한이 없습니다.
강좌 최신순 목록 검색 쓰기
등록된 글이 없습니다.
1