2013-06-24 32 views
4

可以通過重載/覆蓋和現有的APK來創建新的APK。重載APK並創建自定義應用程序

說,我們有WhatsApp的使者。現在,如果我想在通知區域顯示「Person X is now now」這樣的通知,則無法使用現有的WhatsApp Messenger。所以,我想開發一個新的定製信使,它使用WhatsApp messenger的所有功能,以及我的一些定製代碼。就像導入JAR一樣,我們可以導入APK ...嗎?

這似乎是使用另一個人的工作,但從學習的角度來看,我想知道可能性。截至目前,讓我們留下所有的安全漏洞。

+0

你可以反向工程APK,並加上你的代碼,並建立再 –

+0

逆向工程的APK並不容易。我嘗試了這裏提到的步驟,http://stackoverflow.com/questions/13854425/how-to-avoid-reverse-engineering-of-an-apk-file,但項目沒有成功構建。 –

+0

同樣如此,http://stackoverflow.com/questions/3593420/android-getting-source-code-from-an-apk-file?lq=1。但項目建成不成功。 –

回答

6

簡而言之,沒有。

APK不像Jar文件,只需將它們導入到您的應用程序。它們還包含其他資源,如XML和資產。代碼保存在一個classes.dex文件中,該文件由應用程序代碼的Jar文件生成。

此外,每個應用程序都運行在自己的DVM中,並且被沙箱化以防止應用程序之間的這種交互。您不能在自己的應用程序中簡單地使用WhatsApp的代碼作爲第三方應用程序。

有兩種方法可以實現你想要的。

  1. 如果你的目標應用提供了內容提供商,甚至是Web服務,你可以用它來訪問他們的數據和事件,如用戶在線未來的手段的API。 WhatsApp不提供任何此類API
  2. 您可以反編譯目標應用程序,並插入自己的代碼以執行所需操作。這可能非常困難,因爲大多數流行的應用程序,比如WhatsApp,都會混淆他們的代碼,這很難破譯(但不是不可能)。此外,WhatsApp使用AES加密其大部分數據,如消息,聯繫人,聊天線程等,在一些地方添加了一個額外的層來繞過。噢,如果你這樣做,它也違反了一些知識產權和版權法。
2

是和

有一個應用程序通過兩種方式 - 一個獨立的一個 - 分享其與其他應用程序的信息。一個是通過使用內容提供者,另一個是通過自定義廣播。

如果說,WhatsApp的記錄了它的應用程序,並建成,這樣你可以進一步鞏固它,你可以捕捉這些廣播,聽那些供應商,你的應用也可以在後做出的WhatsApp的變化作出反應。

0

你可以創建一個config.properties文件,並在您的wattsup信使資產文件夾將其插入假設你的源代碼,

現在,你將必須配置您的自定義應用程序編寫的變化在這文件,但是您可以通過多種方式更改這些數據,例如允許您通過它們修改該文件中的數據的Web服務。

確定上述情況,您可以進行更改,但您的應用程序永遠不會更新該更改,因爲您處理APK不是代碼,因此您將不得不再次重新生成APK,因此需要最新變化。

對於自動化APK生成,您可以使用ANT工具,通過放置構建。在wattsp源的XML文件 代碼可以運行腳本,螞蟻釋放,你說的這些都是可能性依然,但我最終認爲你不能使用APK作爲一個庫

將與最新的代碼 生成新的APK
相關問題