2012-02-11 4 views
1

Android로 실험 중이며 다음이 가능한지 알고 싶습니다. 다른 APP를 사용하여 설치된 APP를 수정하거나 패치 할 수 있습니까?Android 기기에 설치된 APK 수정하기

루트 액세스가 가능하다는 것을 알고 있지만 뿌리가 맞지 않는 전화에 대해 궁금해하고있었습니다.

가 데이터/응용 프로그램/폴더에서 원래 APK의

-Create 복사 이 - 패치/필요가 패치 된 APK

사용자의 -Launch 설치를 다시 : 마음에 오는 유일한 해결책은 다음이다 설치를 확인하기 위해 이론적으로는 제대로 작동할까요? 내가 생각하지 못했던 다른 기술들?

궁금한 점이있어서 기존 앱의 소스를 변경하지 않고 다른 문자열 및 기타 리소스를 기존 앱에 주입하여 번역 또는 기타 수정 사항 (예 : 게임 속임수)을 제공하는 데 관심이 있습니다.

답변

2

네가 맞아, 이걸 장치에서 할 수있어. Smali/Baksmali은 Android에서 사용할 수 있으며 apktool도 호출 가능해야합니다 (필자 만 smali를 시도했습니다).

1 년 전부터 기기에서 smali를 사용하고 소스 출력을 자동 패치하려고했습니다. 그물에 대한 정보가 있었는데 (현재는 찾을 수 없지만 미안합니다), 매우 제한적이었습니다. 적어도 smali/baksmali를 올바르게 사용하는 방법을 보여주었습니다. 나는 자바를 잘 사용하지 못하기 때문에이 접근법을 버렸고 전화 자원은 제한적이다.

내가 생각했던 또 다른 접근 방식은 실제 작업을 인터넷 어딘가에있는 서버로 오프로드하는 것이 었습니다. 그러나 파일을 전송해야 할 때이 문제는 매우 복잡합니다. framework.apks 등이 필요할 수 있습니다.

이것은 흥미롭지 만 힘든 일이며, apk를 디코딩/파싱/패치/재구성해야하며 신뢰할 수 있어야합니다. 당신이 실패 할 때, 가장 나쁜 것은 사용자 전화가 고장났다는 것입니다 (중요한 시스템 APK를 수정하고 싶었습니다.)

+0

감사합니다. smali/baksmali에 대해 조사하겠습니다. BTW : 시스템 APK를 수정하고 싶지는 않습니다. (정확하게 지적하면 꽤 위험합니다.)) –

0

둘 다 앱을 사용하는 경우. content provider을 사용하여 앱간에 데이터를 공유하고 다른 개발자가 다른 개발자의 앱인 경우 앱을 수정할 수 없습니다.

1

재 설치가 원활하고 필요한 경우 : INSTALL_PACKAGES 권한.

이제 INSTALL_PACKAGES android : protectionLevel은 "signatureOrSystem"입니다. 이는 앱 이미지가 시스템 이미지에 서명하는 데 사용 된 것과 동일한 인증서로 서명되어야 함을 의미합니다.

이제 시스템 이미지에 서명하는 데 사용 된 인증서와 동일한 인증서로 앱에 서명하는 것은 공급 업체가 다른 사람이 자신의 인증서를 사용할 수 없으므로 불가능하지는 않더라도 어려운 작업처럼 보일 수 있습니다. 그런 다음 일부 사용자의 시스템 이미지에 앱이 포함되기를 원할 수도 있습니다. 어쨌든 안드로이드와 안드로이드가 ROM 시장을 가지고 있기 때문에 그것은 매번 중요하지 않습니다.

Android ROM은 Android의 일반적인 '작동'또는 '기능'과 더 많이 동의어입니다. 안드로이드 사용자가 기대하는 것입니다. Android 마켓에는 ROM 등을 나열하고 설치할 수있는 ROM 관리자 앱이 있습니다.

그래서 앱이 INSTALL_PACKAGES 권한을 얻으려면 자신의 ROM을 만들거나 ROM을 만드는 사람들과 함께 작업 할 수 있습니다 ROM에 포함 된 앱을 가지고 있거나 앱의 서명을 위해 ROM의 시스템 이미지에 서명하는 데 사용 된 인증서를 사용하십시오.

다시 한 번 해당 공급 업체가 "펌웨어"(시스템 이미지)에 앱을 포함 할 가능성이 있습니다. 당신은 그들에게 접근해야 할 것입니다.

:)