簡體   English   中英

編譯后將Android應用設置為可調試

[英]Set Android app to debuggable after compiling

這可能是一個完整的“禁止”,但我想知道在將應用程序簽名並編譯為apk之后是否可以使該應用程序可調試。

我希望能夠在服務器上生成一個隨機密鑰,然后使用該密鑰將已發布的應用程序置於可調試狀態。

//Build a hidden back door to request the randomly generated key on my server
//Input this key into an edittext box of some sort.
//Check this key against the server
//If key validates, put application in debuggable state.

我意識到這樣做有潛在的安全風險,但是我只是想知道這是否有可能。

如果您願意重新簽名並重新安裝,則從不可調試的APK生成可調試的APK是相當簡單的,但是您不能對已經安裝的實例進行簽名。

正如Brent所建議的那樣,您的實際代碼中根據可調試/不可調試狀態而有不同行為的任何內容都可以查看其他內容,但這用途有限,因為大多數調試功能都內置於Android中,而不是應用程序代碼的一部分。

不過,您也許可以提供標志性的替代方案來調試功能。 例如,您可以提供一些將私人文件復制到公共存儲中的功能。 如果確實需要,可以在服務器中烘烤,該服務器將提供作為應用程序UID運行的外殼。 但是要使一個實際的JDWP調試器運行可能會需要依賴於android-build的極端黑客,因為您可能必須提供許多系統代碼的自己的版本。

從簡單的角度來看,讓程序通過記錄許多通常被抑制的內部細節來更改其行為將非常簡單。

請花一些時間考慮對用戶的安全隱患。

瀏覽開發站點,我看到通過調用getApplicationInfo().flags;來訪問getApplicationInfo().flags; 從給定的上下文。 flags不是final ,因此出現了getApplicationInfo.flags |= FLAG_DEBUGGABLE; 將允許您在運行時啟用調試:參考ApplicationInfo文檔: http : //developer.android.com/reference/android/content/pm/ApplicationInfo.html

注意,我還沒有測試過這個(不是在momemnt的android環境中測試過)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM