2013-09-05 80 views
2

是否可以在沒有源代碼的Android應用中替換.so文件? 我正在創建使用LGPL許可證v2.1下的一些.so文件的應用程序http://www.gnu.org/licenses/lgpl-2.1.html 許可說:「...您必須提供完整的對象文件給收件人,以便他們可以在更改後將它們與庫重新鏈接庫和重新編譯它...「替換Android中的.so文件apk

是否有可能取代.so文件和重新編譯的應用程序沒有源代碼例如在現有的apk中?我不能給用戶源代碼。或者一些選項給用戶.class文件,以便他可以創建apk? 這是甚至可能的,如果是這樣,有什麼選擇? 謝謝!

回答

0

是的,你可以在apk中替換.so文件。只需使用7zip打開apk替換文件,就完成了。

關於gpl:你應該有2個庫,一個用於你的代碼,另一個用於你借用的代碼,這樣用戶可以替換庫,但是你的代碼不能改變。您也可以對libs版本進行檢查,如果更改就退出。

+0

感謝您的回覆。它看起來很簡單。 我不知道gpl的一部分。爲什麼我應該有2個庫?我在libs/armeabi中只有一個.so文件,根據LGPL,我必須給用戶選項來替換這個.so與他的更改版本。所以用戶可以創建他的.so文件,打開apk,替換.so文件。如果用戶將更改.so,並且由於.so中的更改,應用程序將無法正常工作,這不是什麼大問題。我只需要給他這個選擇。 – vandzi

+2

FWIW,用Zip實用工具替換文件只適用於未簽名的APK。對於從Play商店下載的已簽名APK,必須在更新.so後重新簽名。 – fadden

+1

由於任何與LGPL代碼靜態鏈接的代碼必須具有可用的源代碼。 IE:所有其他代碼都包含在單獨的.so中。 (見第7a節,然後觸發第4節。) –