Magisk 개발자는 Android Q에서 Google Pixel 3 및 Pixel 3a에 대한 루트 시스템 및 논리 파티션 지원이라는 두 가지 큰 혁신을 이루었습니다.
Google은 3월에 첫 번째 Android Q 베타를 출시했으며 Magisk를 통해 빠르게 루트 액세스할 수 있습니다. 사용할 수있게되었습니다 Google Pixel 및 Google Pixel 2의 경우. 하지만 Google Pixel 3는 XDA Recognized Developer인 Magisk의 개발자 때문에 Android Q에 루팅할 수 없었습니다. 탑존우, 새로운 논리 파티션 레이아웃으로 작업하는 방법을 알아내는 데 필요했습니다. Apple에서 새로운 인턴십을 하게 되면서 topjohnwu는 Magisk 작업에 소요되는 시간이 줄어들었지만, 그렇다고 해서 그가 개발에서 두 가지 큰 돌파구를 찾는 것을 막지는 못했습니다. 최신 Canary 릴리스에서 Magisk는 이제 system-as-root를 지원하므로 앱이 루트를 감지하기가 더 어려워집니다. 액세스하고 Pixel 3 및 Pixel 3a XL 시리즈와 같은 논리 파티션이 있는 장치도 지원합니다. 안드로이드 Q.
Google Pixel 3 포럼Google Pixel 3 XL 포럼
Google Pixel 3a 포럼Google Pixel 3a XL 포럼
Android Q에서 Google Pixel 3 및 Pixel 3a 논리 파티션 지원
개발자가 기존 기기에서 Android의 AOSP 버전을 테스트할 수 있도록 Google은 Project Treble 호환 기기(모든 기기)에서 부팅할 수 있는 GSI(일반 시스템 이미지)를 출시합니다. Android 9 Pie 이상에서 실행됩니다.) GSI를 설치하려면 부트로더를 잠금 해제해야 합니다. 이는 모든 기기에서 가능하지 않을 수 있으며 사용자를 삭제한 후 빠른 부팅을 통해 시스템 이미지를 플래시해야 합니다. 데이터. 구글은 안드로이드 Q에서 새로운 기능을 도입했습니다. 동적 시스템 업데이트 이를 통해 개발자는 부트로더를 잠금 해제하거나 데이터를 삭제하지 않고도 GSI를 부팅할 수 있습니다. 동적 시스템 업데이트를 지원하려면 GSI 설치를 위한 공간을 확보하기 위해 동적으로 크기를 조정할 수 있는 논리 파티션이 장치에 있어야 합니다. Google Pixel 3, Google Pixel 3 XL, Google Pixel 3a 및 Google Pixel 3a XL에는 Android Q 베타에 논리 파티션이 있지만 Pixel 3 및 Pixel 3 XL만 DSU를 지원합니다. 그럼에도 불구하고 Magisk가 작동하지 않는 것은 파티션 구조의 급격한 변화 때문이었습니다.
topjohnwu가 결정되면 그가 루트 액세스를 얻는 것을 막을 수 있는 것은 아무것도 없습니다. 얼마 전 그는 자신의 Pixel 3 XL을 Android Q 베타 4에 성공적으로 루팅했다고 발표했습니다. 그의 커밋 설명 여기 논리 파티션 지원을 달성한 방법에 대한 기술적인 세부 사항을 설명하지만 중요한 것은 이제 Magisk를 논리 파티션이 있거나 없는 장치에 설치할 수 있다는 것입니다.
시스템 루트 지원
다음을 갖춘 장치의 경우 A/B 이중 파티션의 경우 시스템 파티션은 루트 디렉터리(/)로 마운트되지만 A/B 이중 파티션이 없는 장치의 경우 시스템 파티션이 /system에 마운트됩니다. 업데이트가 필요한 램디스크의 파일이 부팅 파티션에 있기 때문에 A/B가 아닌 장치에서는 시스템 전용 OTA가 불가능합니다. 그렇기 때문에 Android Pie 이상에서 시스템 전용 OTA를 가능하게 하기 위해 Google은 Android Pie로 출시되는 모든 장치가 시스템 루트 파티션 레이아웃을 지원하도록 요구하고 있습니다. system-as-root 레이아웃에서는 ramdisk 이미지가 rootfs로 마운트되는 시스템 이미지에 병합됩니다.
Google이 system-as-root를 도입한 이후, 해결책 루트 장치로 시스템을 루트로 이전 파티션 "initramfs rootfs" 레이아웃으로 되돌리는 것이었습니다. 저것 공장 Android는 이 이전 레이아웃을 레거시 지원하므로 Android 7.1부터 Android 9 Pie까지는 괜찮지만 Android Q는 완전히 지원합니다. 제거하다 system-as-root 지원은 이제 Android Q로 업데이트되는 기기를 포함해 모든 기기에서 필수입니다. Magisk의 이전 버전은 "정말 불쾌한 해킹" 덕분에 여전히 작동했지만 topjohnwu는 해당 솔루션에 만족하지 않았으므로 시스템을 루트로 제대로 지원하기 위해 소개 "MagiskInit."
시스템 루트 파티션 레이아웃을 적절하게 지원하면 좋은 부작용은 다음과 같습니다. 하나의 잠재적인 길 루트 감지 기능이 무너졌습니다. topjohnwu가 친절하게 설명했듯이 이전의 "initramfs rootfs로 되돌리기" 방법은 Magisk가 마운트되기 때문에 앱이 쉽게 감지할 수 있었습니다. 시스템을 '/system_root'에 바인딩하고 '/system_root/system' 마운트를 '/system.'에 바인딩합니다. 루트의 존재를 감지하기 위해 앱이 해야 할 일은 다음과 같습니다. '/system_root'가 존재하는지 또는 '/'가 'rootfs'인지 확인하십시오. 그러나 어떤 앱이 실제로 이를 탐지하기 위해 활용했는지는 확실하지 않습니다. 뿌리. 그래도 후회하는 것보다는 안전한 게 낫습니다.
기타 변경 사항
Android Q에서는 '포배기 풀"를 Android 애플리케이션 수명 주기에 추가합니다. MagiskHide는 이전에 할 수 없는 새로운 "프로세스 풀" 기능이 활성화된 경우 루트 액세스를 숨기는 앱을 감지합니다. 이제 최신 Canary 릴리스에서는 이 기능을 지원합니다. topjohnwu에 따르면: "Q에 도입된 새로운 포배기 풀 최적화를 제대로 지원하기 위해 프로세스 모니터링을 위한 상당한 양의 ptracing 논리를 다시 작성했습니다."
Android Q 베타에 Pixel 3, Pixel 3 XL, Pixel 3a 또는 Pixel 3a XL이 있는 경우 최신 Magisk Canary 릴리스를 사용해 보고 기기를 루팅할 수 있는지 알려주세요.
Magisk 카나리아 채널