서적에 관한 질문 및 오류 등을 문의 할 수 있으며, 저자로부터 직접 답변을 받을 수 있습니다.

안녕하세요~


고민해보고 찾아봐도 명확한 해답을 얻지 못하여 질문드립니다  ㅠㅠ. 답답하네요 흑...


궁금한것이.. 3rd party app에서 


안드로이드 프레임워크의 특정 기능 이나 라이브러리를 커스터마이징해서 타겟 디바이스에 설치해 적용해보는 겁니다.


이렇게 하려는 이유는 프레임워크의 기능중 확장하거나 커스터마이징해보고 싶은 부분이 있기 때문이죠...


PDK를 이용해서 에뮬레이터로 돌려보면 테스트는 가능하겠지만...


실제 APK 파일로 만들어서 루팅없이!! 다양한 타겟 디바이스에 설치해서 사용해보려고 하니 문제 있어서요.


실제 타겟디바이스에 올려봐야 타겟 디바이스의 해당 시스템 라이브러리를 수정하지 않는 이상 반영이 되질 않질 않으니...ㅜㅜ 어떠한 방법으로 가능할까요?


한가지 시도는 해보고 있는게...


해당 라이브러리 까지의 호출 루틴(JAVA-> JNI -> 네이티브 라이브러리)을 다른 이름으로 재작성해서... 앱에서 호출하게 되면 타겟 디바이스의 라이브러리를 수정해서 호출하는게 아니니 루팅을 하지 않아도 되고... 앱에서 바로 네이티브를 통해서 확장 된 기능을 사용할 수 있지 않을까 생각하는데... 너무 노가다 일까요? 아니면 불가능한 방법인가요;;


혹은 다른 접근법이 있는지... 등에 대해서 조언좀 부탁드리겠습니다.


아는만큼 보인다는게 요즘따라 절실히 느껴지네요 ㅠㅠ....






고도리

2013.03.17 20:13:51
*.111.12.170

주로 class의 permission 때문에 쉽게 손대지 못하는 경우가 있습니다.


하나의 아이디어는 사용하고자 하는 모듈의 소스를 pdk에서 떼 와서 수정한 후 새로운 모듈을 만드는 것입니다.

접근 권한만 살짝 바꿔서요...^^


예전 제 밑의 직원이 그렇게 처리하더군요.


다만 위험성은 있다는 것을 아시기 바랍니다.


김바람

2013.03.22 08:58:22
*.118.69.52

고도리님~


현재 PDK를 떼와서 약간의 수정을 한 뒤 새로운 모듈로 만들어 앱에서 호출해 봤습니다...


작업하고 있는 부분은 MediaPlayer.java 재작성 한 뒤 


JNI 인 android_media_MediaPlayer.cpp 를 재작성 해서 so 모듈로 만들었는데.. 문제가..


android_media_MediaPlayer.cpp 소스에 android_view_Surface_getSurface(env, jsurface) 함수 부분이


라이브러리 로드 시에 아래와 같은 에러를 뿜어내네요

Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1307]:  1990 cannot locate '_ZN7android31android_view_Surface_getSurfaceEP7_JNIEnvP8_jobject'...


라이브러리에서 로드를 못 하는 현상이 있네요...

android_view_Surface_getSurface 함수는 libandroid_runtime.so에서 참조 되는걸 확인했고,,,

mk파일에도 참조 선언을 해놓았습니다..


갤노트2로 쭉 테스트 하다가 안돼서..


레퍼런스인 넥서스7로 테스트 하니까 위의 에러가 발생하지 않네요..


노트10.1에서도 같은 에러가 뜨는 걸 보니... 삼성폰에서만 내부적으로 뭔가가 다른듯한데 ㅠㅠ...


추측해보면 libandroid_runtime 라이브러리를 삼성측에서 수정했거나... 구조가 다른거 같기도 하네요


위의 오류에 대해서 조언 좀 부탁드리겠습니다~!


그리고 말씀하신 접근권한에 대해서 정확히 어떤 부분인지에 대해서 추가 설명좀 해주시면 감사하겠습니다 ㅎ


고도리

2013.03.22 18:13:18
*.200.239.210

android_view_Surface_getSurface() 함수가 포함되어 있는 library를 컴파일 하실 때 지정해 주셔야 합니다.

이는 버전별로 다를 수도 있습니다.


접근권한의 경우는......


예를 들어 system user만 다룰 수 있는 부분이 있는데, 이를 fork 해서 새롭게 만드실 경우도 비슷한 문제가 발생할 것이라는 얘기입니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
83 ffmpeg HOPLAY [3] 네이쳐 2013-12-01 4792
82 안드로이드의 모든 것NDK (고현철,전호철 지음) 책 실습 중 문제에... [1] 어떤이의꿈 2013-10-02 5398
81 init: sys_prop: unable to stop service ctl [DVBService] ... [2] 제임스59 2013-09-22 5480
80 NDK 책내용중에 3.11 외부 라이브러리 활용하기 에서 질문 드립니... file [5] 엽스 2013-08-30 5590
79 ndk 38페이지 질문_repo file [1] 제임스59 2013-08-28 12060
78 여러 분들이 말씀하신 것처럼 책(NDK)의 예제코드를 올려주실 수 없... [2] 트론 2013-08-24 5255
77 surfaceflinger에서 화면을 dump뜨는 메카니즘에 대해서... 김바람 2013-08-19 5134
76 안드로이드 4.2 프레임버퍼 접근 질문드려요~! [6] 범내 2013-07-30 5947
75 [압축된 07-TestSkia 예제파일 올려주세요] [1] 밥줘잉 2013-05-23 5664
74 MediaServer 에 관련해서 질문드려요 [10] 김바람 2013-03-27 6580
» 3rd party app에서 프레임워크 수정된 걸 적용시키려면 어떻게 해야... [3] 김바람 2013-03-17 4838
72 [예제12.SDL] Android 에서 SDL 사용하는 예제 실행 안됨 문의... [7] 둘리 2013-03-12 5609
71 PDK를 이용하여 안드로이드 프레임워크 so파일 참조에 관해서 질문있... [7] 김바람 2013-03-07 26815
70 예제를 따라하던 중 Android.mk 파일로 APK파일 생성 후 설치시 ... [6] 김바람 2013-03-05 12338
69 네이티브 스레드로 자바 콜백 만들기 질문드립니다. [2] 조재영 2013-02-14 5661
68 GPIO 컨트롤 하기 예제 중 insmod에 관하여 문의드립니다. [2] 미누유희 2013-02-13 5126
67 OpenGL 책p168 예제 질문드립니다. Android홀릭 2013-02-06 5413
66 카메라로부터 프래임 데이터 추출하는 예제 입니다. file [1] 죽유 2013-01-24 5383
65 NDK를 이용한 camera 제어 예제에 대해 문의 드립니다. [7] 죽유 2013-01-11 8050
64 NEON관련 좋은 참고 문서가 있을까요? [7] 죽유 2013-01-10 5392

사용자 로그인