마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

android native단의 framework에서 property_set()/property_get() 사용에 관한 질문

0 추천
Android framework/native/opengl 부분에서 property_set()/property_get() 함수를 사용하려고 하는데, 저장이 안되고 있습니다.

property_set() 함수의 key 값으로 임의의 "test.key"이라는 이름을 넣어서 문자열을 저장하려고 하는데, key값을 따로 등록을 해 줘야 하는 건가요?

set 후에 property_get()으로 확인을 해 봐도 값이 나오지 않으며, 혹시나 하는 마음에 adb shell getprop test.key를 해 봐도 나오지 않습니다.

혹시 고수님들의 팁이 있으시면 부탁 드리겠습니다.

참고로 현재 하고 있는 android 버젼은 kitkat 입니다.
무불통지 (200 포인트) 님이 2016년 3월 4일 질문
무불통지님이 2016년 3월 4일 수정

1개의 답변

0 추천

property_get , property_set의 경우 /system/build.prop  파일에 값을 읽어오거나 수정하는 메소드입니다.

이 파일의 권한은 644로 루팅하지 않는 이상 수정이 불가능하게 되어 있습니다.

따라서 루팅권한이 없는환경에선 property_get 는 가능하나 property_set 는 권한 문제로 저장이 안됩니다.

 루팅을 해서 해당 파일에 write권한을 주시던지. 

래퍼 함수를 만들어서 set호출 시  write 권한이 있는 별도  파일에  값을 저장한 후 get 호출 시 저장한 파일에서 값을 구해오고 없을 경우 buildprop에서 값을 구하는 방식으로 우회 시키셔야 할 듯 합니다.

 

익명사용자 님이 2016년 3월 4일 답변
답변 감사합니다. 막혔던 것은 왜 그런지 이해가 되네요.. 이것을 어떻게 해야 할지가 이제부터의 숙제이군요 ㅠㅠ
추가 질문을 해도 될까요?
너무 초보적인 질문이라서... 죄송합니다.
android framework의 소스를 수정하여 property_set을 하는 것도 권한이 필요한 것인가요? framework 소스에 보면 property_set을 사용하여 저장하는 C/C++ 코드가 있습니다. 이 부분의 경우, 권한 획득을 한 후에 수행을 하는 것인지 궁금합니다.
...