안드로이드 개발 질문/답변
(글 수 45,052)
망고 64 보드를 구입하고 시리얼포트로 쉘이 나타난 상태에서..
vi 에디터를 실행시켜 init.rc 를 수정하려고 보니..
vi 에디가 없었습니다..
디바이스 장치중에(/dev) 부팅시에 권한설정(chmod)이 필요한 부분이 있습니다.
그래서 init.rc 를 수정하려고 보니 안되는군요..
혹시 자바 어플리케이션에서 시스템 함수로 권한을 바꿀수 있는 방법이 있는지요?
2010.03.26 12:55:04
자바는 원래 특정 OS에 기초하지 않기에 권한 설정을 할 수 있는 API가 없던 것으로 기억하네요. 직접 chmod를 불러쓰는것 말고 다른 방법이 있을까요?
2010.03.26 16:09:54
NDK를 써서 native C로 chmod(const char *path, mode_t mode);를 호출하도록 작성할수는 있습니다. 그런데 불행히도, /dev/는 소유자가 root 이므로 permission 에러가 날 것입니다. 소위말하는 루팅을 하지 않고는 방법이 없을 것 같습니다.
대신 , (개발보드에서나 가능한 것이지만...) 시리얼 콘솔은 일단 root 권한일 것입니다.
그냥 내용 추가하시려면, cat >> init.rc 로 하셔서 내용작성후 Ctrl-D 누르시거나,
내용변경을 위해서는, 메모장을 이용하시면 됩니다. 이가 없으면 잇몸으로..ㅋㅋcat init.rc
(출력화면을 메모장으로 복사/붙여넣기, 수정, 복사)
cat > init.rc
(붙여넣기)
(CTRL-D)
이 참에, chmod 바이너리를 구하셔서, PC에서 보드연결 후, adb push chmod /system/bin/chmod 로 올려 놓으신후, init.rc에 chmod의 권한을 실행가능하게 하면 될 것 같네요. 아시겠지만, init.rc에 chmod는 내장 chmod로 동작합니다. 즉 chmod 프로그램이 없더라도 init.rc에 넣으면 chmod 명령이 수행됩니다.