국내 기종에 Wanam Xposed를 사용할 경우
feature.xml이 해외기종용으로 변조되어서
HD보이스나 기타 CSC관련 기능들이 작동하지 않는 문제가 발생하는 것을 잘 알고 계실 겁니다.
이를 막기 위한 방법은 이미 알려져있는데
1. Wanam Xposed를 끌 때 뒤로가기로 끄지 말기
2. feature.xml 자체에 Write Protection을 걸기 (퍼미션 등...)
3. Wanam에 의해 변조되기 전의 feature.xml로 돌리기.. 등등..
그러나 이러한 1,2,3의 방법은
불편함과 부작용이 따르게 됩니다.
1의 경우 매번 신경을 써야하는 불편함이 있으며
2의 경우 feature.xml의 편집을 필요로 하는 다른 앱이나 사용자의 편집을 방해하는 문제가 있으며
3의 경우 매번 백업/복원을 해야하는 불편함이 있습니다.
이러한 문제들을 해결하기 위해서
Wanam Xposed에 한하여 feature.xml 변조를 막도록 하는 패치를 만들었습니다.
(루트권한과 Busybox가 필요합니다)
자료실 링크:
http://www.matcl.com/?m=bbs&bid=appDB&uid=220870
이 패치의 원리는
Wanam에서 내부적으로 사용하는
/data/data/ma.wanam.xposed/cache/apply_csc_features.sh 스크립트의 실행만 막는 것입니다.
해당 스크립트의 실행을 막기 위해서는
chmod로는 불가능합니다. 왜냐하면 Wanam 내부적으로 해당 스크립트를 다시 생성하기 때문에
기존 파일에 퍼미션을 지정해놓아도 새 파일의 것으로 대체되기 때문입니다.
그러므로 여기에는
chattr 이라는 강력한 파일시스템 명령어가 사용됩니다.
chattr (Change Attribute)는 리눅스 ext2, ext3, ext4 파일시스템의 각종 attribute를 설정하는 명령어인데
이것이 매우 강력하기 때문에
chattr +i 명령을 통해 Immutable 비트를 set하게 되면
해당 파일은 삭제, 이름변경 등등이 불가능하게 됩니다.
/data/data/ma.wanam.xposed/cache/apply_csc_features.sh 에
#!/system/bin/sh
한줄만 넣어서 더미 스크립트를 만들고, 퍼미션 700을 준 다음
chattr +i /data/data/ma.wanam.xposed/cache/apply_csc_features.sh 을 하게 되면
해당 파일은 삭제, 이름변경이 불가능하게 됩니다.
그러므로 Wanam이 이 더미 스크립트를 실행하게 되므로
Wanam에 의해 feature.xml이 변조되는 것을 선택적으로 막을 수 있게 됩니다.
이 방법을 통한 패치의 장점은
feature.xml 자체의 퍼미션이나 속성은 건들지 않기 때문에
기타 feature.xml 수정을 필요로 할 때 언제든지 feature.xml을 수정할 수 있다는 장점이 있습니다.
게다가
(순정 Wanam Xposed 기준)
Wanam Xposed를 업데이트 하더라도 패치가 유지되는 커다란 장점이 있습니다.
(Unpatch를 하기 전까지는...)
이러한 패치/언패치 과정을 손쉽게 할 수 있도록 패치앱을 만들어서 자료실에 올렸습니다.
(루트권한과 Busybox를 필요로 합니다)
http://www.matcl.com/?m=bbs&bid=appDB&uid=220870
필요하신 분들은 주의사항을 꼼꼼히 읽으신 후 이용하시기 바랍니다.
감사합니다.
http://www.matcl.com/?m=bbs&bid=usermoim&uid=221079
닉스s님의 팁입니다.
Wanam Xposed가 feature.xml의 & amp ;를 &로 축약함으로 인해 XML 파싱에 문제가 생겨서 HD보이스가 활성화되지 않는 문제 원인을 알려주셨습니다. 감사합니다.
그러나 Wanam Xposed 자체의 버그로 인해
본 Wanam HD보이스 패치 없이는
Wanam이 다시 feature.xml을 변조하므로 문제가 재발되는 것으로 확인되었습니다.
그러므로 본 Wanam HD보이스 패치를 이용해 Wanam Xposed가 feature.xml를 변조하는 것을 원천적으로 막고 사용하시기 바랍니다.
(Wanam Xposed의 해당 버그가 수정되기 전까지는 본 패치는 유효할 듯 싶습니다.)
*/