안드로이드 개발 질문/답변
(글 수 45,052)
사용자 입력이 없이 앱을 업데이트하는 방법을 찾는 중입니다. (마켓에 올리지않는 어플임)
제가 찾아본 내용들은
1. PackageManager 를 이용한 설치 : 제조사 signed key(certificate)가 필요함 (http://paulononaka.wordpress.com/2011/07/02/how-to-install-a-application-in-background-on-android/)
2. 강제로 /data/app/ 에 접근해서 apk파일교체후 리부팅
1번 방법의 경우 시스템어플로 설치하는 경우인데 이경우에는 사용자입력없이 가능하다고 되어있습니다. 그러나 디바이스의 certificate가 있어야 하는데 앱을 올릴디바이스에 certificate까지 제공이 가능한지 여부를 아직몰라서 보류상태입니다.
2번방법의 경우 강제로 설치된 폴더에 접근해서 업데이트할 apk파일로 교체하는것입니다. 제가 테스트로 adb를 통해 apk 삭제후 교체하니 가능하긴 한것같습니다. 그러나 실제로 앱을 통해 접근해서 교체할 수 있는 권한을 얻는 방법을 잘 모르겠습니다. File.Delete()를 통해 지워지지 않더라구요.
위 방법으로 해결될 수 있을까요? 아니면 다른 방법이나 조언 부탁드립니다 (루팅한 디바이스로 가정)




방법 없습니다.
1번의 경우 제조사에서 응하지 않을 것 입니다.
2번의 경우 루팅 되어 있다고 해서 앱이 루트 권한을 갖는 것은 아닙니다. 그래서 data 폴더에 접근 불가죠.
슈퍼유저를 통해서 권한을 얻어야 하는데 이는 사용자가 허용 여부를 선택할 수 있습니다.