2012-02-11 111 views
1

我正在嘗試使用Android,我想知道是否有以下可能:我可以使用其他APP修改/修補已安裝的應用程序嗎?在Android設備上修改已安裝的APK

我知道這是可能的root權限,但我想知道關於無根的手機。 想到的唯一的解決辦法是:

- 創建從數據/應用程序/文件夾原有APK的副本 -PATCH /重建它 修補APK

用戶的安裝 - 啓動需要以確認安裝,但從理論上說它會正常工作?任何其他我沒有想到的技術?

如果你想知道,我感興趣的是注射不同的字符串和其他資源到現有的應用程序提供翻譯或其他修改(例如:祕籍在遊戲中),在不改變原有應用的來源。

回答

2

你是對的,你可以在設備上做到這一點。 Smali/Baksmali可以在Android上使用,也可以調用apktool(我只嘗試了smali)。

一年前左右,我試圖在設備上使用smali和autopatch源輸出。網上有一些信息(目前我無法找到,對不起),但它非常有限,至少有人展示瞭如何正確使用smali/baksmali。我已經放棄了這種方法,因爲我不擅長java,手機資源相當有限。

我想到的另一種方法是將實際工作卸載到網絡中的某個服務器上。但是當你需要傳輸文件時,這有它自己的問題,你可能需要framework.apks,等等。

這是有趣的,但堅硬的東西,你需要解碼/解析/補丁/重建的apk,這必須是可靠的。當你失敗時,最糟糕的是用戶手機壞了(我想修改關鍵系統,壞主意))。

+0

謝謝,我會研究smali/baksmali。順便說一句:我不想修改系統apks(聽起來很危險,正如你正確指出的那樣;)) – 2012-02-11 13:22:37

0

如果兩者都是您的應用程序使用。 content provider在應用程序之間共享數據。如果其他應用程序來自另一個開發人員,那麼您無法修改該應用程序。

1

如果重新安裝是無縫的,並且需要:INSTALL_PACKAGES權限,則更好。

現在,INSTALL_PACKAGES安卓的ProtectionLevel是「signatureOrSystem」,這意味着應用程序需要與用來簽署系統圖像相同的證書籤名。

我們籤一個的應用程序使用相同的證書用於簽名的系統映像的一個看起來像一個困難的,如果不是不可能的任務,因爲供應商可能不是願意讓對方使用自己的證書。再次,有些人可能希望你的應用程序包含在他們的系統映像中。無論如何,它並不重要,因爲它是Android,Android有ROM市場。

Android ROMs越來越與Android的「工作」或「功能」的同義詞。這是Android用戶期望的。在Android市場上有ROM管理器應用程序可以列出並安裝ROM等。

因此,在獲得INSTALL_PACKAGES許可的應用程序中,可以製作自己的ROM,或者與製作ROMS的人一起工作並且可以將應用程序包含在ROM中或使用用於簽署ROM系統映像的證書籤署應用程序。

再次,廠商在其「固件」(系統映像)中包含應用程序是完全可能的。你將不得不接近他們。

:)

相關問題