Hax빙글
12.12.06
조회 수 11506
추천 수 54
댓글 52

*문의 받지 않습니다. smali에 대한 기초 지식이 없으신 분은 뒤로가기를 눌러주세요.


 


 


갤럭시 노트 2에는 물결락 사용 중 S펜으로 락화면 터치 시 잉크가 퍼지는 효과가 납니다.


이 글은 그 효과를 젤리빈 펌웨어로 업그레이드 된 다른 기종에서 사용하는 방법입니다.


일단 첨부파일을 다운받아주세요.


첨부파일은 물결, 잉크효과에 관여하는 smali파일, 잉크 효과 설정 화면의 이미지파일, lib파일, 락스크린 세팅 smali파일, SecSettings.apk의 id파일로 이루어져 있습니다.


하나하나 설명해드리겠습니다.


 


일단 CircleUnlockRippleRenderer*.smali들은 렌더링 관련 식이 포함된 smali파일로, 갤럭시노트 2 해외판 유출 젤리빈 펌웨어에서 가져온 파일들입니다.


이 부분에서 저는 "com.sec.feature.spen_usp" 이 시스템 기능으로 포함되어있는지 확인하는 if 구문을 삭제하고,


Landroid/view/MotionEvent;->getSource()I 를 이용해 가져오는 소스를 중간에 가로채 0x4002(SOURCE_STYLUS)로 바꿔줌으로써 손가락으로 터치해도, S-Pen이 없는 장치여도 잉크 효과가 작동되도록 수정했습니다.


이 파일은 그냥 android.policy의 최상위폴더(sec)에 덮어씌워주시면 됩니다.


*확실하지는 않지만, 갤럭시노트1 젤리빈 펌웨어는 이 작업은 안해줘도 될 것 같네요.


깜빡한 부분이 있습니다!

CircleUnlockRippleRenderer.smali 파일을 여시고

0x1080618 를 찾으신 다음 framework-res.apk의 public.xml에 있는 reflectionmap 의 id값에 맞게 수정해주세요.

이때문에 물결이 조금 다르게 나오더군요.


 


InkeffectPreview.smali 또한 갤럭시노트 2의 SecSettings에서 가져왔는데요, 이 파일은 잠금 화면 설정에서 잉크 효과를 눌렀을 때 나오는 색상 선택 화면에 관여하는 smali 파일입니다.


이 파일에서는 array-data를
    :array_14
    .array-data 0x4
        0x28t 0x2t 0x2t 0x7ft
        0x2at 0x2t 0x2t 0x7ft
        0x2bt 0x2t 0x2t 0x7ft
        0x2ct 0x2t 0x2t 0x7ft
        0x2dt 0x2t 0x2t 0x7ft
        0x2et 0x2t 0x2t 0x7ft
        0x2ft 0x2t 0x2t 0x7ft
        0x30t 0x2t 0x2t 0x7ft
        0x31t 0x2t 0x2t 0x7ft
    .end array-data


    .line 62
    :array_2a
    .array-data 0x4
  0x32t 0x2t 0x2t 0x7ft
        0x33t 0x2t 0x2t 0x7ft
        0x34t 0x2t 0x2t 0x7ft
        0x35t 0x2t 0x2t 0x7ft
        0x36t 0x2t 0x2t 0x7ft
        0x37t 0x2t 0x2t 0x7ft
        0x38t 0x2t 0x2t 0x7ft
        0x39t 0x2t 0x2t 0x7ft
        0x3bt 0x2t 0x2t 0x7ft
    .end array-data


로 수정해주고, constructor <init>()V 가 array-data가 총 9개로 이루어져있다고 인식하게 만들었습니다.


array-data에 나오는 값들은 public.xml에 들어있는 ink_ 이미지 파일들의 id로, 뒤에서부터 2글자씩 읽으시면 됩니다.


예)array_14의 1번 array-data는 0x7f020228 입니다. ink_none.png를 가리키죠.


이 파일은 SecSettings에서 찾아서 id만 바꾸고 덮어씌워주시면 됩니다.(경로가 기억이...)


 


또한, 갤S3나 젤리빈으로 업그레이드 될 타 기종들은 모르겠지만, 갤투에서는 잉크 효과 관련 String 값들이 9개보다 적었기 때문에 저는 그냥 const-string을 이용해서 하드코딩해주었습니다.


예)


    sget-object v2, Lcom/android/settings/InkeffectPreview;->mInkcolorItem:[Ljava/lang/String;


    invoke-virtual {p0}, Lcom/android/settings/InkeffectPreview;->getResources()Landroid/content/res/Resources;


    move-result-object v3


    const v4, 0x7f090cdc


    invoke-virtual {v3, v4}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;


    const-string v3, "None"   <--getString이 v3로 스트링을 가져오면 전혀 다른 내용이 나타나므로 None으로 대체.


    aput-object v3, v2, v7


 


LockScreenSettings.smali은 잠금 화면 설정 메뉴의 목록에 관여하는 smali파일인데요, 여기서는 위 InkeffectPreview.smali의 이유와 같이, 잉크 효과 관련 String 값들이 9개보다 적었기 때문에 그냥 빈칸을 표시해주도록 array-data를 교체하였습니다. 나중에 잉크 효과를 적용하실 분들은 그 값이 있는지, 없는지 찾아보시고 새로 추가하시거나, 저처럼 빈칸으로 교체해서 사용하시면 됩니다.


그리고 잉크 효과 설정창이 잠금 화면 설정 패널에 나타나도록 mInkEffect:Landroid/preference/PreferenceScreen의 removePreference(Landroid/preference/Preference;)Z 구문을 삭제해주었습니다.


 


제가 수정한 파일은 public.xml 파일로 끝인데, 이 파일은 SecSettings.apk의 public.xml으로, ink 이미지 파일을 drawable쪽에 추가시켜준 후 id값을 부여했습니다. 위의 InkeffectPreview.smali 변경 내용을 참조해주세요.


 


 


나머지 libWaterRipple.so libWaterRipple2.so 이 두 파일은 기기의 /system/lib 폴더에,


inkeffect 폴더와 JniWaterRippleRender.smali 는 andorid.policy의 최상위 폴더(sec) 에 넣어주시면 됩니다.


 


그 다음 모두 컴파일하시고, odex롬은 odex로 바꾸시고 deodex롬은 그냥 classes.dex를 복사해서 넣으시면 됩니다.

Extra Form
첨부
잉크효과 소스.zip  [File Size:4.63MB/Download:651]
댓글을 남겨야 다운로드가 가능합니다. 감사의 댓글을 달고 오른쪽 확인버튼을 눌러주세요.
다운로드시 일주일에 한개 이상의 게시물 작성이 필요합니다. 지금 자유게시판에 회원님의 하루를 남겨보세요.
추천♡버튼을 잊지 마세요. 추천인과 회원님 모두 포인트가 적립됩니다.
댓글 52
1 2 3
  • ?
    코에이
    12.12.06
    추천합니다
  • ?
    Hax빙글
    12.12.06
    감사합니다
  • ?
    FINEDAYS
    12.12.06
    강좌 엄청 깔끔하네요 추천드려요~~!!
  • ?
    Hax빙글
    12.12.06
    감사합니다. 제가 글을 잘 못써서 걱정했었는데 그렇게 말씀해주시니 다행이네요ㅎㅎ [Matcl mobile : Nexus 7 eng.ulisse.20121205.070327]
  • ?
    Honey벌
    12.12.06
    오호! 잘할수있을꺼같습니다! 빙글님 감사합니다 꾸벅 [Matcl mobile : SHV-E210S E210SKSJLK3]
  • ?
    Hax빙글
    12.12.06
    좋은 결과 있으시길 바랄게요^^ [Matcl mobile : Nexus 7 eng.ulisse.20121205.070327]
  • ?
    능력자분들 대단하십니다 ㅎㅎ 덕분에 저같은 초보도 도전해볼 수 있게 되었네요. 감사합니다! 혹시, 개인적인 질문은 쪽지로 여쭤봐도 될까요?
  • ?
    Hax빙글
    12.12.07
    네. 물어보셔도 돼요. 본문에 문의는 받지 않는다고 했지만, 사실 너무 많이 물어보지만 않으시면 돼요. 저도 사람인지라, 처음부터 끝까지 다 알려주려면 귀찮거든요ㅜㅜ [Matcl mobile : Nexus 7 eng.ulisse.20121206.065336]
  • ?
    소스나 살펴봐야겟네요 ㅎㅎ 감사합니다. 렌더링쪽이 궁금하군요 [Matcl mobile : SHW-M250S I9100XXLSJ]
  • ?
    열어보니 실적용된것과 차이가 있네요 본파일엔 레드.블랙이 있지만 적용된거엔 없군요... 좀더봐바야겟네요.. [Matcl mobile : SHW-M250S I9100XXLSJ]
  • ?
    Hax빙글
    12.12.07
    XXLSJ펌웨어는 노트2 4.1.2 초기버전 펌웨어를 기반으로 만든 것 같아요. 잉크효과 색이 5개인가? 밖에 없고 잉크효과 끄는 설정도 없더군요.
  • ?
    역시...노트2펌을 기반으로 만들었군요 다음버전이 기대되네요 ㅎㅎ [Matcl mobile : SHW-M250S I9100XXLSJ]
  • ?
    그러고 보니 국내노트2는 잉크색 설정이 없던대.. 빠진건가 보네요.. [Matcl mobile : SHW-M250S I9100XXLSJ]
  • ?
    래빗PD
    12.12.08
    id값을 추가시킬수도 있군요! 가르쳐주실수있으신가요>
  • ?
    Hax빙글
    12.12.08
    APKTOOL DUMMY라고 되어있는 값들을 사용하시거나 사용하지 않는 id를 사용하시면 돼요. [Matcl mobile : GT-I9100 I9100XXLSJ]
  • ?
    소중한 정보 너무너무 감사드립니다 추천드렸습니다^^
  • ?
    Hax빙글
    12.12.09
    감사합니다^^ [Matcl mobile : Nexus 7 eng.ulisse.20121206.065336]
  • ?
    래빗PD
    12.12.09
    그렇군요! 감사합니다
  • ?
    노트10.1에서 잉크락이 없어서 잉크락을 넣을려고 했는데 초보인 저에게는 무슨말인지 하나도 모르겟네요...... 그래도 추천하고 갑니다
  • ?
    래빗PD
    12.12.19
    노트계열 은 젤리빈 업데이트 이후에 펜으로 드래그하면 생기는걸로 알고있습니다
  • ?
    노트10.1은 펜으로 드래그 해도 안되요 설정 자금창에 가도 잉크락 설정도 없고요
  • ?
    hyunyi
    12.12.20
    엄청난 개발자 이시네요.. 무슨말인지 못알아먹겠어요 ㅠㅍ.. 뭐부터 공부해야할까요 ㅎㅎ...
  • ?
    Jelly-
    12.12.26
    어디부터 해야 할지 잘 모르겠네요ㅠㅠ 공부하고 오겠습니다
  • ?
    PAULICE
    13.01.11
    ICS에선 안되나요,,??
  • ?
    식느님
    13.01.16
    Secsetting 에서 어느경로인지가....... 궁금합니다 ㅜㅜ 다른건 다 할수있습니다.
댓글 쓰기 권한이 없습니다.
분류 정렬 목록 검색 쓰기
List of Articles
제목 글쓴이 추천 조회 날짜
이스티니커널 갤럭시s3 언더볼티지 (내부전압 포함)(2/2) 6 file 갤3초보 2 5028 2012.12.10
이스티니커널 갤럭시s3 언더볼티지 (내부전압 포함)(1/2) 7 file 갤3초보 1 3020 2012.12.10
국내판 갤3/노트2 잠금화면에서 바로가기 되살리기 22 file FINEDAYS 42 15075 2012.12.09
[아이폰5 케이스 반값] 아이폰5 케이스로 해피 크리스마스♡ 1 스마트줌 4 2170 2012.12.09
프리빌리지 터미널: 셸 스크립트 작성법 9 프리빌리 16 3337 2012.12.07
갤럭시S3 LJ2 순정 펌웨어 토렌트 입니다. 2 file Gess 2 4234 2012.12.07
갤럭시s3 lte 1.6오버 전압셋팅(최종)+gpu 전압 추가~ 21 file 욘빡 6 10002 2012.12.06
드라마 보고싶다를 폰에서 즐기려면? 2 풀하우두 3 2222 2012.12.06
손가락으로 잉크 효과 내기 52 file Hax빙글 54 11506 2012.12.06
갤2 유출펌 올리신분들 와이파이 사용문제 없으신가요? 4 물레방아 6 2319 2012.12.05
갤럭시s3 lte 1.6 오버클럭 셋팅값입니다~ 8 file 욘빡 4 9569 2012.12.05
갤치디 다이얼 수정 6 지트라 2 2218 2012.11.30
삭제된 설정 되살리기 17 Hax빙글 8 5238 2012.11.28
무섭게 급변하는 세상~ 이제 셀카도 돈이되는 시대래요 2 내일을위 2 3498 2012.11.27
네이버 많이 본 뉴스 RSS 주소~ 10 경계이론 8 7985 2012.11.26
Leche님의 ELS롬(SK)에 내장되있는 Leche테마가 갤S3(KT)에 정상 적용! 66 file 레이카마 37 10913 2012.11.25
숫자놀음이긴 하지만 4 갤3초보 3 2182 2012.11.25
멀티윈도우 백키를 꾹 눌르명 온오프할수 있네요 ㅎㅎ 10 file 스까이 4 3979 2012.11.25
아이스크림 전기종 인터넷종료 버튼 9 file 닉777제임 5 5113 2012.11.24
맥(맥북, 아이맥)에서도 자유롭게 다운로드 1 file 참재밌었 2 2381 2012.11.23
갤스3 젤리빈 업데이트 후 키보드 버벅임 현상 관련... 3 kerub 2 4221 2012.11.22
국내 스마트폰 시스템APP 삭제여부 정리표 14 카도 32 7944 2012.11.21
SJKernel GPU OC/UV 설정방법입니다. 10 상진군 18 6614 2012.11.21
문자쓰는 중 쉽게 기호 넣기ㅋ 13 칼z 11 4319 2012.11.20
u+ 퀵패널ㅠ 1 ajtwlsgns83 3 2237 2012.11.19
갤3, 노트2 순정 프레임워크에 존재하는 테마들 소개 1 file SKYRIM 27 8549 2013.01.03
강좌 갤럭시s 오버클럭1.4ghz안전수치 14 ㅅㄴㅎㅇ 16 9205 2012.12.31
테마처음적용하는분둘보새요!! 13 안늉하이 27 3175 2012.12.31
preload파티션을 이용한 시스템 용량 확보 7 RetinaLoad 5 4051 2012.12.31
cwm백업중 오류 ...... 해결법 2 옹다리 6 2749 2012.12.29
1 - 85 - 135