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

AOSP를 빌드하여 만든 시스템 앱에서 su 사용이 가능한가요?

0 추천

루팅을 하지 않고 /system이나 /data/data 등에 접근하기 위해 AOSP에 제가 만든 프로젝트를 넣고, 서명하여

롬을 만들어 빌드를 하는것까진 성공했습니다.
 
루팅된 디바이스에서 유저 어플리케이션으로 동작할때는
 
Runtime.getRuntime().exec("su"); 부분에서 디바이스의 superSU 등의 앱에서 권한 허가를 허용한다면 문제없이 돌아가는 소스인데요.
 
빌드한 롬에서 Runtime.getRuntime().exec("su") 명령어를 사용하고 (정확히는 su가 아니라 /system/xbin/su 입니다.)
DataOutputStream에서 writeBytes()작업을 하면 broken pipe 에러가 뜹니다.
 
adb에서는 su 명령어를 입력하면 # 모드로 이상없이 진행하는데, 소스에서는 어떤 부분이 문제가 되는지 잘 모르겠네요.
 
갤럭시 넥서스 JB 4.1.1 버전 AOSP 빌드하였고
제가 만든 프로젝트의 Manifest permission은 다음과 같습니다.
 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
 
물론 manifest에 android:sharedUserId="android.uid.system" 애트리뷰트 추가했습니다.
현재 BufferedReader 에서 /data/data 에 있는 파일을 FileReader를 통해 가져와서 readLine을 해보면 정상적으로 동작합니다.
 
한줄 요약 : 프로젝트의 권한을 올리고 prebuilt app으로 만들어도 superSU등의 앱이 없으면 ls -al /data/data가 불가능한가요?
익명사용자 님이 2013년 10월 30일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...