EXODUS_Q™
14.04.19
조회 수 4354
추천 수 2
댓글 3
"노숙자 Hax빙글"님께서 아주 예전에 맛클에 올리셨던 원조격 게시글입니다.
늦게마나 Hax빙글님께 감사하다는 말씀을 드립니다.^^

제가 작업해보면서 좀 더 구체적이고 보충 설명이 필요하다고 판단했던 부분만 추가로 설명해드리겠습니다.
(baksmali와 smali가 가능한 분들에게 해당되는 내용입니다.)

위의 게시글 내용대로
SecSettings.apk/smali/com/android/settings폴더를 열어보면 수많은 smali파일들이 있습니다.
그중에서 DisplaySettings.smali(디스플레이 셋팅)와 LockScreenSettings.smali(잠금화면 셋팅)가 아마도 가장 실용적이고 많이들 필요로하는 smali인것 같습니다.


》각각의 smali를 notepad++로 엽니다.

》"찾기"창에 remove를 입력하고 검색하면 여러개의 관련 구문이 나옵니다.

》활성화 시킬수 있는 구문들은 주로 아래와 같은 구조로 돼있습니다.
(참고:갤럭시S2_DisasterV4_SecSettings.apk/smali/com/android/settings/DisplaySettings.smali)

 .line 334
    invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getPreferenceScreen()Landroid/preference/PreferenceScreen;

    move-result-object v12

    const-string v13, "led_indicator_settings"

    invoke-virtual {p0, v13}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;

    move-result-object v13

    invoke-virtual {v12, v13}, Landroid/preference/PreferenceScreen;->removePreference(Landroid/preference/Preference;)Z

 .line 340
    invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getPreferenceScreen()Landroid/preference/PreferenceScreen;

    move-result-object v12

    const-string v13, "contextualpage_settings"

    invoke-virtual {p0, v13}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;

    move-result-object v13

    invoke-virtual {v12, v13}, Landroid/preference/PreferenceScreen;->removePreference(Landroid/preference/Preference;)Z

 .line 364
    invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getPreferenceScreen()Landroid/preference/PreferenceScreen;

    move-result-object v12

    iget-object v13, p0, Lcom/android/settings/DisplaySettings;->mAccelerometer:Landroid/preference/CheckBoxPreference;

    invoke-virtual {v12, v13}, Landroid/preference/PreferenceScreen;->removePreference(Landroid/preference/Preference;)Z

 .line 512
    :cond_9
    invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getPreferenceScreen()Landroid/preference/PreferenceScreen;

    move-result-object v12

    iget-object v13, p0, Lcom/android/settings/DisplaySettings;->mQuickLaunchPreference:Landroid/preference/ListPreference;

    invoke-virtual {v12, v13}, Landroid/preference/PreferenceScreen;->removePreference(Landroid/preference/Preference;)Z


위 예시를 보면 아시겠지만, 
활성화를 묶어둔 설정들은 저런식의 구조로 마지막 라인에 removePreference 가 포함돼 있습니다.

저런식의 구조로 된 항목들을 다 찾아서 라인(.line)밑의 모든 구문들을 삭제하면 환경설정창에 숨겨졌던 항목들이 되살아 납니다.(왜 그렇게 숨겨뒀는지..?..)

그리고,CheckBoxPreference;라는 구문이 있는게 있고 없는게 있습니다.
그것은 우리가 환경설정창에서 많이 보는 설정창 해당 항목의 활성화 여부를 묻는 그 체크박스가 있는 항목입니다. 

체크박스(CheckBoxPreference;) 구문이 없는 경우는, 
맨위의 "led_indicator_settings(LED상태표시등)"처럼 체크박스는 없지만 해당 항목을 클릭하면 추가로 여러 항목의 활성화를 체크할수있는 설정창이 열리는 경우입니다.

어쨌든, 저런 식으로  removePreference구문이 포함된 라인의 구문들을 모두 삭제하면 되는데 주의해야 할 점이 있습니다.

[주의]
각각의 구문마다 맨 첫라인에 .line 512 이렇게 해당 항목의 라인을 구분하는 구문은 삭제하지말고 남겨둬야 합니다.
그리고, 그 밑에 :cond_9 라는(비슷한) 구문이 있는게 있고 없는게 있는데 만약 있다면 그것도 삭제하면 안됩니다.
삭제한후에는 구문 사이의 빈칸이 추가로 생기는데 그 빈칸도 위아래 구문들과 같이 다시 맞춰줘야 합니다.

그리고, 무엇보다 중요한것은,
removePreference구문이 있다고해서 마구잡이로 삭제하지 마시고 
천천히 각 항목별 내용이 뭔지를 잘 살펴보시고 나에게 꼭 필요한 항목만 정확히 확인한후에 삭제하시길 추천드립니다.

특히,
PenSettingsMenu.smali 라는게 있는데 그안의 특정구문(?)을 잘못 삭제하게 되면,
나중에 컴파일하여 폰에 적용했다가 S펜 사용중에 갑자기 터치위즈홈이 ALL-STOP되는 경우가 있습니다.
강제리부팅을 하지않고서는 터치가 전혀 안먹히는 아주 황당한 경우가 발생하니 엥간하면 그쪽 smali는 건드리지 마세요.

EXODUS_Q™ 님의 SIGNATURE

profile
Just Do It.
댓글 3
댓글 쓰기 권한이 없습니다.
분류 정렬 목록 검색 쓰기
List of Articles
제목 글쓴이 추천 조회 날짜
폰을 내비게이션으로 쓰는경우 (s보이스 핸즈프리) file 동카 1 6179 2014.04.20
숨겨진 환경설정 활성화 시키기. 3 EXODUS_Q™ 2 4354 2014.04.19
우분투 12.04 lts 부팅이 안될 때 해결법 『quincykt 1 7725 2014.04.18
'USIM 인식되지 않습니다" file EXODUS_Q™ 3 7925 2014.04.17
xda에 노트3용 갤5 mod가잇네요 3 바키파이 3171 2014.04.15
갤럭시 S3 4.3 SecContacts.apk 컴파일 안되는 것 되게하기. 흰고양이 2 6344 2014.04.14
qq브라우저 플래쉬플레이어 1 매보바좆 1 5761 2014.04.13
퀵패널 밑배경 2 file EXODUS_Q™ 8 6898 2014.04.11
갤럭시s4 이상 *#0*# 의 Barcode Emulator Test의 기능 1 미래야 5890 2014.04.11
통신사 멤버십 사용처들입니다. 참고하세요 3 file 순두부멘 1 2228 2014.04.09
통신사 멤버십 사용팁 8 file 타쪼 9 6261 2014.04.08
G3가 스펙이 좋긴 좋네요 18 file 에핑 1 5908 2014.04.08
갤럭시 S4 상단바 S5화 12 file 꿣뚫뛣 6 10637 2014.04.07
환경설정 배경 바꾸기 15 file EXODUS_Q™ 12 4837 2014.04.07
포팅된 갤럭시S5 앱 적용 시 2 하우투유 3880 2014.04.06
갤포이상모델? 색맹사용자를위한 배려기능과 기타 접근성기능 file 게티갤투 2 4126 2014.04.03
s-view mods note3 대충 사용법... 2 file gugubon 1 5370 2014.04.02
강좌 커널 빌드(컴파일) 을 해보자 ~! 8 『quincykt 6 6837 2014.04.02
[LG] 갤럭시노트10.1 2014 (sm-p605l) 유심(USIM) 상단푸쉬, 경고창제거. 1 file prssy1513 2 18505 2014.04.02
제가 알고있는 팁과 가용램 실험결과 보고합니다 3 잉큐 2 4406 2014.04.01
갤5 유저분들..꼭 보세요... 3 호인군 4 6449 2014.03.30
Xposed Installer 설치 실패할 때 무한 재부팅 발생할 경우 해결책 8 돈짱이아 1 14552 2014.03.30
Wanam HD보이스 패치 사용자분들 필독해주세요 (CWM 복원 관련) 28 file hsk 20 6056 2014.03.29
갤5 구성품 중 이어폰 연장선의 용도 8 샌드백 4983 2014.03.29
푸우님의 S5 build3 상단바 문제 겪으신분들 팁입니다. 2 April11 4 2411 2014.03.29
PKM 2일 연구결과 5 file Saebyeol 9 6038 2014.03.29
갤5 cf auto root툴로 루팅하지 마세요...ㅠㅠ 5 샌드백 3955 2014.03.29
갤럭시s5 날씨 폰트 수정 방법 6 file JHOLLEH 12 8824 2014.03.27
Jenkins설치부터 Jenkins으로 Android Build하기.. 4 file Sleepy¸ 3 6245 2014.03.26
갤5 날씨위젯 노트2 4.3 에서 적용하기 2 file 갤투최고 6022 2014.03.26
1 - 28 - 135