*Tutorial for Force Installing the Xposed Framework

1. Xposed 프레임워크 설치 기능에 대하여

 

(1) Xposed 개요

Xposed란 시스템 앱을 변조하지 않고도 동작을 변경할 수 있는 모듈을 구동하기 위한 프레임워크입니다. 즉 Xposed는 그 자체로는 아무런 기능도 하지 않지만, 모듈을 연결하여 시스템의 동작을 여러 측면에서 변경할 수 있습니다. Xposed 모듈은 Xposed 프레임워크가 없이는 동작하지 않으며, 프레임워크가 설치된 후에도 Xposed Installer 앱에서 활성화하여야 사용할 수 있습니다.

 

(2) Xposed 프레임워크 강제 설치

Xposed 프레임워크는 기본적으로 /system/bin/app_process를 교체하고, XposedBridge.jar과 연결시키는 방식으로 설치됩니다. 그런데 여기서 전자는 시스템 파일을 교체하는 것이므로 루트 권한이 필요합니다. 하지만 루트하지 않고 Xposed만을 사용하고 싶은 사용자가 분명히 있을 것입니다. 그렇기 때문에, GomdoLight는 특유의 플래그를 사용하여 루트 여부와 관계 없이 Xposed 프레임워크를 강제 설치하는 기능을 제공하고 있습니다. 이 기능의 동작 원리를 보면 다음과 같습니다. (KitKat 이하의 OS에 한정. Lollipop 이상의 OS에서는 다른 설치 방법을 사용합니다. 그러나 사용자가 기능을 사용하는 방법과 절차는 거의 동일합니다)

  • 사용자가 install.xposed.framework 플래그를 통해 GomdoLight에게 Xposed 프레임워크 설치를 명령합니다.
  • GomdoLight는 시스템이 시작되는 동안 /data/app에 Xposed Installer 앱이 설치되어 있는지 찾습니다. 찾지 못하면 GomdoLight는 Xposed Installer 앱을 자동으로 설치하고 강제로 디바이스를 다시 시작합니다.
  • Xposed Installer 앱이 감지되었으면, 여기서 app_process와 XposedBridge.jar를 추출합니다.
  • 그리고 원본 app_process를 백업하고 (이미 백업되어 있는 경우 백업을 생략) 추출한 app_process를 /system/bin에 강제로 주입하는 동시에 적절한 퍼미션을 부여합니다.
  • 그 동안 GomdoLight는 Xposed Installer 앱의 Owner ID를 확인하고, 추출한 XposedBridge.jar를 적절한 위치에 주입하는 동시에 Xposed Installer와 일치하는 Owner ID 및 적절한 퍼미션을 부여합니다.
  • 디바이스가 루트되어 있는지 여부와 관계 없이, 이제 Xposed 프레임워크의 설치가 완료되었습니다.

즉, 이 기능이 동작하려면 1) Xposed Installer 앱이 설치되어 있는 상태에서, 2) 사용자가 install.xposed.framework 플래그를 생성하고 디바이스를 다시 시작해야 합니다. 자세한 방법을 아래에 스크린샷과 함께 설명합니다.

 

 

2. 방법 설명

 

누구라도 아래의 설명을 따라하면 빠르게 Xposed 프레임워크를 설치할 수 있습니다.

 

(1) ‘GomdoLight 앱 관리자’에서 Xposed Installer 앱 설치

먼저, GomdoLight의 번들 앱 배포 플랫폼인 GomdoLight 앱 관리자를 열고, 목록에서 Xposed Installer를 찾아 설치합니다. 이 과정은 KitKat 이하의 OS에서만 필요하므로, 프레임워크를 커스텀 리커버리를 통해 강제설치하고 사후적으로 Xposed Installer를 설치하는 방식을 취하는 Lollipop 이상의 OS에서는 생략하여야 합니다.

 

(2) 플래그 생성

탐색기에서 /sdcard/GomdoLight 폴더를 길게 누르고, ‘새 텍스트 파일’을 선택합니다.

 

그리고 나서 파일 이름을 입력하는데, 아래와 같이 install.xposed.framework 라고 합니다. ‘확인’을 누르면 내용을 편집하는 화면으로 이동합니다. 그러나 플래그에서 내용은 의미가 없으므로 내용을 비워 둔 채 그대로 [뒤로가기]를 눌러 빠져나옵니다.

* 위 플래그 대신 auto.install.xposed.framework 플래그를 사용할 수도 있습니다. 이 플래그를 사용하면, Xposed 프레임워크가 설치되어 있는 상태에서 시스템을 시작하면 사용자에게 묻지 않고 install.xposed.framework 플래그를 만들어, 그 다음에 시스템을 시작할 때 Xposed 프레임워크를 설치하도록 자동으로 예약합니다. 이 플래그는 평소에 주로 Xposed 프레임워크를 설치한 상태로 사용하지만, Xposed를 감지하여 실행을 거부하는 앱을 이용하기 위하여 임시로 Xposed 프레임워크를 제거하는 상황이 빈번한 경우에 특히 유용합니다.

그러면, 이제 /sdcard/GomdoLight에 install.xposed.framework라는 이름의 파일이 생성되었을 것입니다.
이것이 플래그 파일입니다.

 

(3) 최종 적용

최종적으로, 디바이스를 다시 시작하여 플래그를 적용합니다.

적용되는 데에는 약간의 시간이 소요되고, 디바이스가 한 번 더 자동으로 다시 시작될 수 있습니다.

Advanced System Enhancement Pack