이제 Lollipop용 Xposed가 공식적으로 출시되었습니다.

Xposed Framework는 XDA 리더에 대한 소개가 필요하지 않습니다. 우리 커뮤니티에 관한 질문을 받았을 때 롤리팝을 가장 싫어해요, 토론에서 가장 높은 표를 얻은 의견은 Xposed에 대한 지원을 중단했다는 것입니다. 실제로 많은 포럼 회원들은 이러한 이유로 Lollipop 업데이트를 거부하기도 했습니다. 그러나 많은 기대를 모았던 Xposed Framework가 마침내 Android Lollipop용으로 출시됨에 따라 이제 모든 것이 변경되었습니다.

Xposed에 아직 익숙하지 않으시다면 간단히 말해서 Xposed는 모딩 커뮤니티에 신의 선물입니다. Xposed는 ROM을 플래싱할 필요가 없지만 사용자가 루팅된 장치에 앱처럼 설치할 수 있는 수많은 사용자 정의 및 조정 기능을 제공합니다. 사용이 매우 간단하고 위험이 제한되어 있습니다. 이제 Lollipop의 모든 Android 애호가는 자신의 기기에서 이 환상적인 프로젝트의 이점을 누릴 수 있습니다. 다운로드를 받아 모딩을 시작해 보세요!

rovo89는 또한 최신 프로젝트에 대한 Q&A를 친절하게 제공해주었습니다. 아래에서 프로젝트에 관한 모든 질문에 대한 답변을 찾을 수 있습니다.

왜 그렇게 오래 걸렸나요? ART가 출판된 지 1년이 넘었습니다!

우선, 많은 분들이 계속해서 ART 지원을 요청하고 계십니다. Lollipop에는 더욱 엄격한 SELinux 정책, 64비트 ROM, 주요 릴리스에서 기대할 수 있는 아키텍처 변경 등 그보다 훨씬 더 많은 변경 사항이 있습니다. 물론 ART 자체도 지속적으로 개선되고 있습니다. KitKat용 ART와 Lollipop용 ART 간에는 큰 차이가 있습니다.

따라서 한 가지 이유는 연구, 개발 및 테스트에 많은 시간이 소요되는 엄청난 복잡성 때문입니다.

또 다른 이유는 내 인생에 Xposed 외에 다른 일이 있기 때문에 코드를 전혀 보지 않은 지 몇 주, 심지어 몇 달이 흘렀기 때문입니다.

모든 모듈을 다시 작성해야 합니까?

아니요, Xposed API는 거의 변경되지 않았습니다. Xposed는 모든 세부 사항을 추상화하므로 모듈은 Dalvik에서 실행되는지 ART에서 실행되는지 신경 쓸 필요가 없습니다. 많은 모듈은 실제로 아무런 변경 없이 작동합니다. 특히 사용자 앱의 동작을 수정하는 모듈은 더욱 그렇습니다. 시스템 동작을 대상으로 하는 모듈은 새로운 Android 프레임워크 코드에 맞게 조정되어야 할 수도 있습니다. ART로 인해 발생하는 것이 아니라 단순히 두 Android 간에 발생하는 아키텍처 및 코드 변경으로 인해 발생합니다. 릴리스. 가장 중요한 점은 시스템 서비스에 대한 코드가 별도의 파일로 이동되었다는 것입니다. 영향을 받는 모듈 대부분의 경우 약간의 리팩토링(코드를 다른 위치로 이동)으로 이 문제를 해결할 수 있습니다.

실제로 작동합니까?

예! 적어도 나에게는 일상적인 기기(CM12의 Nexus 5)와 Nexus 9(XDA에서 지불 - 감사합니다!)에서도 잘 작동합니다. 휴대폰은 평소처럼 안정적이고 앱도 잘 작동합니다. 그리고 분명히 모듈과 해당 후크/리소스 교체도 잘 작동합니다. 그렇지 않으면 무언가를 릴리스할 필요가 없습니다.

그런데 왜 알파 버전일까요?

마지막 안정 릴리스 이후 복구 사용 방법을 아는 사람들이 테스트해야 하는 큰 변경 사항이 있었기 때문에 부팅 루프에서 벗어나 버그를 올바르게 보고하십시오. 나는 초보자들에게 충분한 경험이 있는 사람들이 Xposed를 테스트할 때까지 기다리는 것을 강력히 권합니다.

JNI(네이티브) 메서드 후킹과 후킹 시 실행되는 메서드 등 아직 테스트되지 않은 일부 극단적인 경우도 있습니다.

나는 그것을 설치하고 싶다. 지금! 어떻게 해야 하나요?

위의 내용을 읽고 휴대전화 내부 구조에 대해 잘 알고 있는지 확인하세요. 분명히 Lollipop ROM에 있어야 하며 데이터를 잘 백업해야 합니다. 지금은 ARMv7 버전만 게시하겠습니다. 64비트는 더 복잡하므로 먼저 "쉬운" 변형을 시도해 보겠습니다.

현재로서는 사용자 지정 복구에서 수동으로 설치를 수행해야 합니다. zip 파일을 플래싱하면 다음이 설치됩니다.

  • app_process32_xposed 및 일부 심볼릭 링크
  • libexposed_art.so
  • libart.so 및 일부 관련 바이너리 + 라이브러리(5.0.2 기반, 후킹 지원 등으로 강화됨)
  • XposedBridge.jar(현재 /system/framework에 저장됨)

기존 파일의 백업이 자동으로 생성되며 나중에 복원할 수 있습니다.

안 돼요/마음에 안 들어요! 어떻게 제거할 수 있나요?

가장 쉬운 방법은 백업을 복원하거나 시스템 파티션을 플래시하는 것입니다. 제거용 zip 파일이 아직 생성되지 않았습니다.

내 장치에서 ART 파일을 바꾸는 이유는 무엇입니까? 이는 Dalvik보다 더 침입적이며 심각한 성능 문제를 일으키고 불안정할 것입니다!

나는 몇 가지 이유를 적어 두었습니다. GitHub. 예, 더 침해적이기 때문에 오랫동안 피하려고 노력했지만 기술 및 지원 중심의 관점에서 볼 때 더 나은 선택이라고 생각합니다.

원래 ART보다 성능이 떨어지나요? 아마도 특정 종류의 후크를 가능하게 하기 위해 일부 최적화를 비활성화해야 했기 때문일 것입니다. 그러나 이는 모든 방법 중 극히 일부에만 영향을 미치며, 이러한 경우에도 성능 손실은 측정 가능하더라도 확실히 심각하거나 눈에 띄지 않습니다. ART에서는 여전히 수천 가지의 다른 최적화가 수행되고 있으며 최대한 많은 유연성을 제공하면서 가능한 한 적게 비활성화하려고 노력했습니다.

위에서 언급한 것처럼 안정성은 괜찮습니다. Dalvik에 사용한 접근 방식과 비교하면(런타임의 내부 데이터 구조를 다음에서 수정) app_process), 라이브러리를 완전히 교체하는 것이 훨씬 더 안정적이라고 확신합니다. 방법. 변경 사항을 기존 코드에 깔끔하게 통합하고 관련 기능을 재사용할 수 있는 반면, 다른 방식을 위해서는 많은 해킹과 가정이 필요할 것입니다.

드디어 소스코드를 공개하게 될까요?

물론, 알파 버전이 출시된 직후 GitHub의 별도 브랜치에서 찾을 수 있습니다.

이는 이전 Android 버전이 이제 더 이상 지원되지 않는다는 의미인가요?

아니요! 새 코드는 모든 Android 4.x 버전에서 컴파일되며 통합 릴리스 전에 테스트만 하면 됩니다. 하지만 먼저 Lollipop에서 제대로 작동하는지 확인해야 합니다. 아마도 ART 지원을 KitKat으로 백포트할 수 있지만 우선순위는 낮습니다.

당신의 노고에 어떻게 감사를 표할 수 있나요?

많은 분들이 몇 달러를 기부할 수 있는 방법을 문의해 주셔서, 제가 설정했습니다. 기부 지금 페이지.

X 기능이나 Y 기능을 수행하는 모듈을 추가하려면 얼마를 기부해야 합니까?

그것은 기부하는 것이 아니라 미래의 일을 기대하여 누군가에게 돈을 지불하는 것입니다. 나는 프리랜서 직업에는 관심이 없습니다.