이전편
Intro
이번에는 저번 편에서 했던 소유자 권한을 가진 앱을 초기 디바이스 세팅 시 QR Code를 통해
배포하는 방법을 포스팅 하겠습니다.
1.APK 파일 생성
- 안드로이드 스튜디오 상단 메뉴 -> Build -> Generate Singed APK
2.서버에 APK 파일 저장
- 서버에 APK를 저장 한 후 URL을 갖고와야 합니다.
- 예제로 테스트 서버를 구축해서 해보겠습니다.
1) 테스트용 서버 세팅 방법
1-1)웹서버 설치
– 설치주소: http://www.jibble.org/miniwebserver/
- 터미널 창 -> 해당 파일위치 -> 명령어 입력 -> java -jar SimpleWebServer.jar
1-2)ngrok 툴 설정
https://yjkim-dev.tistory.com/m/16(ngrok 홈페이지)
https://yunwoong.tistory.com/131(사용법)
위의 사이트를 참고해주세요~
3.QR Code 생성
- 위의 링크는 QR Code를 생성해주는 사이트 입니다.
{
"android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME":"app.examples.deviceManager/.AdminReceiver", //패키지이름 및 리시버 이름
"android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION":"<https://745b0d80.ngrok.io/app-release.apk>", //apk 다운로드 경로
"android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM":"xxxx-xxxx-xxxxxx-xxxxxxxx_xxxx", //signature-checksum 정보
"android.app.extra.PROVISIONING_SKIP_ENCRYPTION":true,
"android.app.extra.PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED":true
}
위의 형식대로 입력하시면 됩니다.
- 여기서 3번째에 입력해야 하는 Signature-Checksum 값을 추출해보겠습니다.
1) 터미널에서 안드로이드 SDK가 설치된 곳으로 이동합니다.
2) build-tools 디렉토리로 이동합니다.
3) 아래의 명령어를 입력해서 CheckSum 값을 추출합니다.
./apksigner verify -print-certs apk경로/1.0.0-app-release.apk | grep -Eo "SHA-256 digest: [[:xdigit:]]+" | awk '{ print $3 }' | xxd -r -p | openssl base64 | tr -d '=' | tr -- '+/=' '-_’
예시
./apksigner verify -print-certs /Users/moontom/AndroidStudioProjects/SystemManagerTest/DeviceSystemManager/app/build/outputs/apk/release/system-app-release.apk | grep -Eo "SHA-256 digest: [[:xdigit:]]+" | awk '{ print $3 }' | xxd -r -p | openssl base64 | tr -d '=' | tr -- '+/=' '-_'
4.QR Code 인식을 통한 앱 설치
-이제 생성한 QR Code를 통해서 Owner권한을 가진 앱을 설치해보겠습니다.
-디바이스 공장 초기화 -> 첫번 째 디바이스 초기화면 -> 화면 7번 탭 QR 인식 -> 앱 설치
참고
http://sjava.net/2020/05/안드로이드-키오스크kiosk-앱-개발-3-3/#comment-13011
'안드로이드 공부 & 앱' 카테고리의 다른 글
안드로이드 인앱 시스템 구축[1편] 앱 소유자(Owner) 권한 얻기 (0) | 2023.07.28 |
---|---|
[안드로이드/Kotlin] 의존성 주입 및 Hilt 프레임워크 사용 과정 (0) | 2022.05.17 |
[안드로이드/Kotlin] DiffUtill + RecyclerView 개념 정리 및 Tip (0) | 2022.05.14 |
안드로이드 CleanArchitecture 개념 정리 및 구현 (0) | 2022.04.21 |
[안드로이드] JetPack Navigation 개념 정리 및 예제 (0) | 2022.04.16 |
댓글