Google은 두 번째 Android Q 베타의 GSI를 출시했습니다. 이러한 시스템 이미지는 앱 테스트를 위해 Project Treble 호환 장치에 설치할 수 있습니다. 방법은 다음과 같습니다.
최종 Android Q 릴리스가 점점 가까워질수록 개발자가 애플리케이션을 업데이트하는 시간은 단축됩니다. Android 9 Pie(API 레벨 28)는 아직 대부분의 기기에 적용되지 않았지만 Google Play의 API 레벨 요구사항은 이미 잘 알고 있어, 2020년에는 API 레벨 29를 목표로 삼게 됩니다. Android 9 Pie를 대상으로 하도록 앱을 아직 업데이트하지 않은 경우, 그 다음에 새 앱을 출시할 계획이라면 8월까지, 기존 앱을 업데이트할 계획이라면 11월까지 기다려야 합니다. 다음 Android 버전 개발을 시작하려는 분들은 이미 다음 Android 버전에서 앱을 테스트하실 수 있습니다. Android 스튜디오 에뮬레이터 또는 물리적 하드웨어를 소유한 경우 모든 Google Pixel 스마트폰. 하지만 올해 Google은 개발자에게 최신 Android 버전에 대해 앱을 테스트할 수 있는 또 다른 방법을 제공합니다. 안드로이드 Q 베타 GSI Project Treble 호환 장치에.
프로젝트 트레블 스마트폰 기기 제조업체가 소프트웨어 및 보안 업데이트를 출시하는 속도를 향상시키기 위한 주요 이니셔티브입니다. 간단히 말해서 Treble은 장치 제조업체가 하드웨어를 작동시키는 소프트웨어를 OS 뒤의 소프트웨어와 분리하도록 요구합니다. 이를 통해 기기 제조업체는 기존 기기에서 새로운 Android 릴리스를 부팅할 수 있으므로 새로운 Android 소스 코드 릴리스 위에 기존 코드 기반을 이식하는 힘든 작업을 시작할 수 있습니다. CTS를 보완하는 것은 장치 제조업체가 장치가 Project Treble의 요구 사항을 충족하는지 확인하는 데 사용하는 테스트 집합인 VTS(Vendor Test Suite)입니다. 장치 제조업체가 테스트해야 하는 가장 중요한 검사 중 하나는 Treble 호환 스마트폰이 GSI(일반 시스템 이미지)를 부팅하는 기능입니다. GSI는 기기 제조업체가 Treble을 제대로 구현했는지 확인하기 위한 수정되지 않은 AOSP 빌드입니다. 하지만 OEM을 넘어 Google은
믿는다 개발자는 Android 앱 호환성 테스트를 위해 GSI를 사용할 수 있습니다.예를 들어, Google Pixel을 소유하지 않은 경우 Google Pixel과 가장 일치하는 조건에서 앱 동작을 테스트할 수 있는 유일한 방법입니다. 문서는 여러분이 직접 Pixel 장치를 구입하거나, Android Studio 에뮬레이터를 부팅하거나, 클라우드 테스트를 살펴보기 위한 것입니다. 서비스. 각각에는 장단점이 있지만 기존 Treble 호환 장치가 있고 돈을 쓰지 않거나 에뮬레이터의 한계를 처리하고 싶지 않다면 여기에 GSI를 설치하는 것은 어떨까요? 앱이 GSI에서 작동한다면 해당 Android 버전을 실행하는 거의 모든 기기에서 작동해야 합니다.
이것이 바로 Google이 Android Q GSI를 출시하기로 결정한 사고 과정입니다. 적어도 우리는 그렇게 생각합니다. Android Q의 소스 코드는 8월까지 제공되지 않으므로 Google의 공식 GSI 바이너리는 현재 Pixel이 아닌 실제 하드웨어에서 Android Q를 테스트할 수 있는 유일한 방법입니다. 시작하는 방법은 다음과 같습니다.
요구사항
Android Q 베타 설치를 고려하기 전에 기기가 Project Treble과 호환되고 부트로더에서 깜박이는 시스템 이미지를 수용할 수 있는지 확인해야 합니다.
요구사항:
- 당신의 장치 해야 하다 가지고 있다 잠금 해제 가능한 부트로더. 미국에서 판매되는 Snapdragon Samsung 스마트폰, Huawei 브랜드 기기, Honor 브랜드 기기, HMD Global의 Nokia 브랜드 기기(제외) 노키아 8) 여기서는 자격이 없습니다.
- PC에 최신 ADB 및 Fastboot 바이너리가 설치되어 있으며 찾을 수 있습니다. 여기. 오래된 버전의 Fastboot를 사용하면 플래시가 제대로 작동하지 않을 수 있습니다.
- 당신의 장치 해야 하다 만나다 하나 Project Treble과 호환되는 것으로 간주되는 기준은 다음과 같습니다.
- Android 9 Pie로 출시된 기기입니다. 이 경우 이 섹션을 마친 후 Treble 호환성 확인을 건너뛸 수 있습니다.
- 이 기기는 Android 8.0 Oreo 또는 Android 8.1 Oreo로 출시되었지만 VNDK 격리 및 시스템 루트를 사용하여 Android 9 Pie로 업데이트되었습니다. 아래 섹션에서 이를 찾는 방법을 자세히 설명합니다.
더 진행하기 전에 GSI를 플래싱하려면 사용자 데이터 파티션을 완전히 지워야 한다는 점을 언급할 가치가 있습니다. 이는 기기의 내부 및 외부(/data/media) 저장소에 있는 모든 사진, 비디오, 음악, 문서 또는 기타 모든 것을 잃게 된다는 것을 의미합니다. 따라서 더 진행하기 전에 장치 외부 백업을 만드는 것이 좋습니다.
다음으로, 이러한 GSI는 CTS를 통과하지 않았으므로 앱이 SafetyNet Attestation API를 사용하여 CTS 프로필 일치와 기기 무결성을 확인하는 경우 작동하지 않습니다. 또한 이러한 빌드는 일상적인 사용을 위한 것이 아니므로 Android Q에서 이미 문서화된 버그 외에 하나 이상의 기본 하드웨어 기능이 작동하지 않더라도 놀라지 마십시오. Google은 이미 GSI와 관련된 몇 가지 알려진 문제를 나열했습니다. 여기. 발견한 새로운 버그는 모두 제출해야 합니다. 여기.
Treble 호환성 확인
다음 명령을 실행하십시오.
adbshellgetpropro.treble.enabled
응답이 다음과 같은 경우 거짓, 장치가 Project Treble과 호환되지 않으므로 계속해서는 안 됩니다. 응답이 다음과 같은 경우 진실, 그런 다음 계속 진행해도 됩니다.
다음으로, 다음 명령을 실행하여 버전 간 지원을 확인하세요.
adb shell
cat /system/etc/ld.config.28.txt | grep -A 20"\[vendor\]"
출력에서 섹션을 찾습니다. [공급업체]을 클릭한 다음 해당 섹션 내에서 다음을 찾으세요. 네임스페이스.기본.격리. 해당 속성의 값이 다음과 같은 경우 진실, 그러면 기기가 Android 9 Pie 공급업체 이미지 위에 Android Q GSI 부팅을 지원해야 합니다. 값이 거짓, 그러면 기기는 동일한 기기 내 버전의 OS에 대해서만 GSI를 사용할 수 있습니다.
마지막으로, 장치가 ramdisk가 시스템 이미지와 병합되는 system-as-root인지 확인해야 합니다. System-as-root는 Android 9 Pie로 업그레이드하는 기기의 경우 필수는 아니지만 GSI를 통해 새 OS 버전을 플래시하는 경우와 같이 시스템 전용 OTA를 지원하는 데 필요합니다. 다음 명령을 실행하고 출력이 "system-as-root"와 일치하는지 확인합니다.
adb shell
cat /proc/mounts | grep -q /dev/root && echo"system-as-root" || echo"non-system-as-root"
이제 장치가 Treble과 호환된다는 것을 알았으므로 다운로드할 GSI 바이너리 버전을 파악해야 합니다. 아키텍처마다 이미지가 다르기 때문입니다. 장치에 어떤 아키텍처가 있는지 확인하려면 다음 명령을 실행하십시오.
adbshellgetpropro.product.cpu.abi
GSI를 다운로드할 때 필요하므로 여기에 출력을 기록해 두세요.
GSI 다운로드
Android Q 베타 GSI의 공식 빌드에 대한 다운로드 링크는 Google에서 제공됩니다. 여기. 이전 단계에서 확인한 장치 아키텍처에 따라 적절한 버전을 다운로드해야 합니다. GMS 또는 Google 모바일 서비스를 사용하여 빌드를 다운로드하는 경우 다운로드 용량이 상당히 커집니다. Google Play 서비스를 사용하여 빌드에서 앱을 테스트할 수 있도록 적극 권장합니다.
파일 다운로드가 완료되면 압축을 풀 수 있습니다. 안에는 두 개의 파일이 포함되어 있습니다. 시스템.img, 그리고 vbmeta.img.
GSI 플래싱
- 버튼 조합을 사용하거나 다음 명령을 실행하여 장치의 부트로더를 재부팅합니다.
adb reboot bootloader
- 다음으로 Android 자체 검사 부팅(AVB)을 비활성화해야 합니다. 다음 명령을 입력하여 이 작업을 수행할 수 있습니다.
fastbootflashvbmetavbmeta.img
- 다음으로 시스템 파티션을 삭제해 보겠습니다.
fastboot erase system
- 마침내 다음을 사용하여 Android Q GSI를 플래시할 수 있습니다.
fastbootflashsystemsystem.img
- 완료되면 다음을 사용하여 userdata 파티션을 지웁니다.
fastboot -w
- 전원 버튼을 사용하거나 다음을 입력하여 장치를 재부팅하십시오.
fastboot reboot
몇 분 후에 부팅되길 바랍니다. 이 단계는 Pixel 3 XL에서 검증되었지만 보편적으로 작동합니다. Android Q 베타 2 GSI가 OnePlus 6T에서는 부팅되지 않지만 Xiaomi Mi 9에서는 부팅되는지 확인할 수 있습니다. Sony Xperia XZ3에서는 작동할 수 있지만 Moto G7에서는 부팅되지 않는다고 합니다. Google의 요구 사항은 동일한 OS 버전 GSI 호환성만 확인하므로 마일리지가 다를 수 있습니다.