2011-10-07 4 views
0

이것은 다소 미친 질문 일 수 있습니다. 그러나 나는 항상 그것을 사용하기 전에 약간의 통찰력을 얻고 싶습니다.안드로이드에서 framework.jar 바꾸기/교체 소스

framework.jar을 다시 작성 (예 : MIUI에서 framework.jar를 가져 오는 것과 같은) 할 수 있습니까? smali로 디 컴파일 한 다음 처음부터 다시 작성하십시오 (독서와 직접 작성하여 자바로 다시 작성).

필자는 Cyanogen mod에서 비슷한 파일을 가져 와서 빌드를 위해 참고할 계획이었습니다. 나가 이것을하기에 흥미 있던 이유는 나가 무선 공용 영역 층을 어느 정도 재건 할 필요가있는 전화가 있고 기 그것의 smali를 직접 편집하고 그것을 디버깅하는 것을 다루는 너무 많은 격론이 되었기 때문에이었다.

사람들이 가능한지 아닌지에 대한 판단을 서두르는 것이 덜 빠르기 때문에 나는 여기서 물어볼 것이라고 생각했습니다. 왜 모든 것을 올바르게 (이론적으로) 추가하고 소스에서 classes.dex 파일을 다시 빌드하면 작동하지 않는지 나는 알 수 없습니다.

주된 이유는 MIUI를 휴대 전화에 포트하기위한 노력의 일환입니다. 너무 골치 아픈 사람 중 적은 수가 Java를 다시 작성하고 올바르게 작동하려면 MIUI와 함께 제공되는 framework.jar를 편집하는 것보다 작동하는 framework.jar (CM7 또는 AOSP 소스에없는 부분이 있음)을 다시 작성하는 것으로 나타났습니다.

답변

1

dex 파일을 자바로 다시 디 컴파일하는 방법은 다양하지만 완벽하게 컴파일 할 수있는 java 파일은 생성되지 않습니다. 당신은 톤을 디 컴파일러에서 자바 코드를 정리하여 컴파일해야합니다. 그것은 그 정도의 큰 것을위한 옵션이 아닙니다.

가장 좋은 방법은 AOSP 또는 CM이 휴대 전화에서 작동하도록하는 것입니다. 그러면 원하는 수정 내용으로 직접 프레임 워크를 직접 만들 수 있습니다.

+0

CM7은 이미 내 휴대 전화 용입니다 (비공식적으로). MIUI를 포팅하려는 노력을하고있었습니다. CMUI에없는 framework.jar에서 일부 라이브러리 및 수정이 발생했습니다. 나는 MIUI를 뒤집어서 CM7의 프레임 워크 관련 패키지에 추가하고 MIUI에서 작동하도록 다시 빌드 할 수 있다고 생각했습니다. – yarly

+0

ㅎ. 그건 정확히 내가 왜 자신의 소스를 공개하지 않는 사용자 지정 ROM을 신경 쓰지 않는 이유입니다. :) MIUI와 CM 사이의 프레임 워크 차이점을 수행했다고 가정합니다. 당신은 특정 기능과 관련된 파일들에 대해 역 컴파일을 수행하는 것을 벗어날 수 있습니다. – JesusFreke

+0

아, 그래, 그 일을하고 그 변화를 해결하려고 노력했습니다. 나는 당신의 빠른 답장을 간청하고, #smali에서 freenode에 관한 IRC를 보았습니다. 그래서 당신은 제 질문에주의를 기뻐하고 답장 할 시간이 걸렸습니다. 감사! – yarly

관련 문제