일부 변수가 있을지도 모르지만
우선 토글 확장의 경우에는 스말리의 이해부터가 필요합니다.

추가 경로 : SecSettingsProvider.odex/smali/com/android/providers/Settings/DatabaseHelper.smali
우선 아래 구문들을 예시로 토글 추가 강좌를 써 내려가도록 하겠습니다.

예시문 (노트2 파일 기준입니다.)
    .line 5917
    :cond_16
    const-string v6, "SmartStay"

    invoke-virtual {v6, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v6

    if-nez v6, :cond_c

    .line 5942
    const-string v6, "PersonalMode"

    invoke-virtual {v6, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v6

    if-nez v6, :cond_a

 위 예문과 같이 .line 5917은 smartstay 즉, 활성화된 구문이고,

아래쪽 예문은 personalmode 즉, 비활성화된 구문입니다.


smali는 자바의 한 종류로서 각각의 아이템마다 변수가 지정되어 있습니다.

오늘 제 강좌에서는, 이러한 변수의 값을 변경하여 그 아이템이 값을 눈치를 못채게 살짝 바꾸어 주는 것입니다.

(말하자면 완벽한게 아닌 그냥 데이타 베이스의 수치값을 이용한 눈속임일 뿐이죠..ㅋ)


우선 위의 예문을 보시면,


 if-nez v6, :cond_c


if-nez v6, :cond_a

 이러한 변수값이 주어져 있을 것입니다.

(변수값은 기기에 따라 다를수 있습니다. 활성화된 변수값 보시면서 작업하세요)

회색은 활성화된 토글, 빨간색은 비활성화된 토글입니다.


이제는 cond_c와 cond_a의 경로로 지정된 구문으로 가 봅시다.


    .line 6007

    :cond_c

    new-instance v6, Ljava/lang/StringBuilder;


    invoke-direct {v6}, Ljava/lang/StringBuilder;->()V


    invoke-virtual {v6, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;


    move-result-object v2


    invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;


    move-result-object v2


    const-string v5, ";"


    invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;


    move-result-object v2


    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;


    move-result-object v2


    goto :goto_4


    .line 5832

    :cond_a

    :goto_4

    add-int/lit8 v4, v4, 0x1


    goto :goto_3

변수 a와 변수 c는 구문부터가 차이가 납니다.


즉, 바꾸어 말하자면, 변수 c (cond_c)는 활성화변수,

변수 a(cond_a)는 비활성화 변수로 볼 수 있습니다.


기초적인 설명이 끝났으니 여기서부터 할 일은 매우 쉽습니다.


.line 5917
    :cond_16
    const-string v6, "SmartStay"

    invoke-virtual {v6, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v6

    if-nez v6, :cond_c

    .line 5942
    const-string v6, "PersonalMode"

    invoke-virtual {v6, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v6

    if-nez v6, :cond_c

a를 그냥 c로 바꾸어주면 끝입니다.


이런 방식으로 퀵토글 이름 ex) EBOOK (독서모드) PersonalMode(프라이빗모드) 

등등등..을 검색하시면서 변수를 바꿔주시면 됩니다. ㅎㅎ


(가끔 가다가 cond_c1이나 cond_010 이런 돌연변이 (?) 구문들이 있을텐데..

이부분은 아예 건드리지않는것이 정신건강에도 좋으실 겁니다..하하)


이후 컴파일후 적용후에 /data/data/com.android.provider.settings 폴더 지워주시면 됩니다.

(4.4.2는 상관없는데 4.3은 공초해야 오류없이 적용되드라구요..ㄷㄷ)




언젠가 써야지,,써야지 하다가 이제서야 쓰게 되네요 ㅎㅎ

별로 실생활에 쓸모 없는 강좌 (?) 이지만 그래도 혹시 쓰시는분 있으시면 자그마한 제 닉네임이라도 붙혀주시면 감사하겠습니다.


저 이거 알아내고 추적하는데만 3일이 걸렸거등요..


아무튼지간에, 나중에 또 퍼뜨릴꺼 있으면 강좌로 쓰겠습니다~

모두들 굿나잇!

댓글 9
  • ?
    피가되고 살이되는 강좌입니다. 드릴건 추천뿐이네요.
  • ?
    SNAG
    14.06.07
    ㅎㅎ 멋진 자료네요
  • ?
    시카킴
    14.06.07
    갤럭시s3 4.3 은 .line 4766 const-string v5, "SmartPause" invoke-virtual {v5, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v5 if-nez v5, :cond_118 이런식으로 cond_***가 숫자로 표시되네요 숫자도 랜덤이구요 ㅠ
  • ?
    Blacky™
    14.06.07
    기기마다 변수값은 다릅니다. smartstay 변수값 참조해서 작업해보세요.
  • ?
    시카킴
    14.06.07
    감사합니다 :)
  • ?
    lioil55
    14.06.07
    토글이 먼가요...? 저거 하면 머가 좋은거죠...ㅜ
  • ?
    ㅎㅎ.. 맨 아랫분 댓글처럼 피가되고 살이되는 강좌네요 ~ 요즘 차근차근 배우는중인데 ... 블래키님 갤티이 나이트팩도 같이 기다리면서요 ~
  • ?
    NKazu
    14.09.06
    활성화되는 변수값을 찾을려고 하니 다 다르네요..? 10c 인것들도 있고 10f 인것들도 있고 그냥 smartstay 변수값으로 사용해야되나요..
  • ?
    Blacky™
    14.09.06
    smartstay가 가장 보편적으로 활성화되는 변수값입니다.
댓글 쓰기 권한이 없습니다.
분류 정렬 목록 검색 쓰기
List of Articles
제목 글쓴이 추천 조회 날짜
앱자료실에올라왓엇던 갤4용 노트3향 뷰커버을 Xposed 모듈로 조금더 ... 2 file JDHStanDarD 1 3621 2014.06.22
강좌 갤럭시 노트 3 네오 (SM-N750S/K/L) 루팅 3 엠나무 2 21157 2014.06.21
강좌 잠금화면 앨범아트 비활성화하기(xposed 아님) 4 file 세나☆ 6 11421 2014.06.21
갤럭시s5에 조명락 블라인드락 추가하기 file 세나☆ 1 6443 2014.06.18
강좌 [강좌]apk파일 cmd 없이 디/리컴파일하기(언팩아닙니다)-11mb프로그램 ... 7 file PodGom 7 13799 2014.06.17
스마트폰이 게임 시장까지 건드리면 어떻게 될까요... 1 file 핀테일 3299 2014.06.17
퀵패널에 손전등(Torch) 추가하기. 14 file EXODUS_Q™ 6 6877 2014.06.17
분실된 폰은 찾을수가 없다고 합니다 주운 폰들은 마음껏 사용하시길 12 미당 1 46435 2014.06.16
Galaxy Tab4 10.1(SM-T530) 루팅하기 3 sunbeeJung 2 19432 2014.06.16
노트2 킷캣펌 설정에 툴박스 활성화하기 1 세나☆ 4 7249 2014.06.15
Non s5 기기에서 흑백모드 초절전모드 등 활성화하기(수정) 7 file 세나☆ 1 14947 2014.06.14
강좌 안드로이드 킷캣(4.4.2 ~ 4.4.4) 잠금화면 카메라 및 바로가기 기능 활... 13 file 젤리베리 23 14216 2014.06.14
강좌 노트2 킷캣 손전등 메뉴 활성화 시키기 11 file 지누지눙 2 9406 2014.06.14
안드로이드 파일 확장자 연결 설정법 7 file 짱구삼촌 5 23495 2014.06.13
성경 구절 빨리찾기 스크립트(made by 짱구삼촌님~) 13 file EXODUS_Q™ 1 5019 2014.06.13
안드로이드 크롬 한손조작팁!! 동카 5415 2014.06.08
제가 발명한 초절전 모드 9 skagud92 4616 2014.06.08
강좌 퀵패널 아이콘 갤5화하기(약간의 오류 포함) file 청량리행 7 7845 2014.06.08
노트2 시스템어플 제거시 블투 nfc 지우면 안됩니다 1 무한도전 2 3792 2014.06.07
강좌 [알만한 사람들은 다 알만한 강좌] 4.3 이상 기기에서 토글 추가하기. 9 Blacky™ 26 7192 2014.06.06
SKT 갤럭시노트2 안드로이드 4.4.2 킷캣 기본 어플 삭제 목록 - 4차수정 30 젤리베리 65 26234 2014.06.05
혹시 노트2 유플 루팅방법을 모르시는 분께 4 찬란한아 11 4069 2014.06.05
갤럭시 메가 커스텀롬용 커널(cm11, aosp 기반 사용가능) 1 dex123123 2 7736 2014.06.03
강좌 S5환경설정 그리드모드 자주사용탭 삭제 강좌 9 file 칼카스 2 4500 2014.06.02
[갤럭시s5 따라하기] (루팅) 갤럭시s2 메뉴 버튼 멀티태스킹 바로 만들기 4 file manho 2 12090 2014.06.02
이사만루 2014 루팅유저들을 위한 팁 7 coelus 1 15212 2014.05.29
갤포아(e330s)ne2 삼성관련앱 사용중지 주의 13 썸띵 2 4458 2014.05.28
S4 Wanam쓰면 s헬스 강종먹네요 3 JUNGSSI 1 3201 2014.05.25
맛클 어플에서 본문 내용이 안보일 때 팁입니다. 4 file bestmjh47 3 4437 2014.05.25
Cyanogenmod 11(Android 4.4.2) Galaxy Note SKT 3G/LTE 안잡힐경우 3 file HackerChang 4 7888 2014.05.25
1 - 26 - 135