2010-09-09 22 views
0

由於整個Android的東西是開源的,我正在考慮對com.android.internal.telephony包中的一些內部類進行一些小修改,當然那麼我會愛,如果不知何故我的應用程序可以使用修改的類。我正在考慮用運行時通過使用反射或其他類型的未知java技巧替換原始的類:D ...也許我想要做的是不可能的:(我不知道這就是爲什麼我在問修改Android的內部類/呼叫處理

注:在內部類的變化不會以任何方式改變其功能,它更多擴展其功能,所以即使其他應用程序會使用修改後的版本,它不會打破他們

爲什麼我想這樣做?我想要實現什麼? 我想修改com.android.internal.telephony.gsm.CallTracker內部類,這樣我就可以做到呼叫處理(呼叫限制等) 也許如果你知道另一種方式怎麼做我想做什麼,我想聽聽吧:)

注2:我知道方法時,你處理android.intent.action.PHONE_STATE,action,但是當播放此動作時它的反應太遲。我真的找一個更好的解決辦法,即使該解決方案包括醜陋的黑客:)

一如既往感謝您的答覆...

+0

因此,如果它不可能有沒有辦法我可以做適當的呼叫處理?那樣令我傷心 :( – 2010-09-09 07:08:35

回答

1

你不能做到這一點:)我就讓你想象會是什麼如果任何應用程序被允許自由地替換系統的核心部分,就會發生。您可以下載Android源代碼,然後您可以修改它,並且可以將修改內容上傳到手機(如果手機已植根/解鎖),但無法通過簡單的應用程序應用這些修改。

0

更改類功能(方法,字節碼)已加載類是不可能的。反射/調用不會影響類別,但僅影響靜態字段和實例

您正在尋找添加其他方法或更改正在運行的系統的現有方法的方法,因爲當您的「黑客」應用程序執行時,相關類可能已經加載。

我看到的唯一技術方法是預先更改類並部署修改過的系統。我現在只是忽略了可能的授權問題和安全問題。但即使採用這種方式,您的軟件將取決於自定義操作系統,某些ororid版本的分支,與官方更新斷開連接,您必須要求客戶安裝自定義操作系統,例如未知功能。


阿里納斯 - 我很高興,這是真的不可能的,否則我的手機就已經木馬,病毒等的全 ...

0

羅曼是正確的,你可以並且不應該嘗試改變現有的系統類。

也就是說,通過創建替代處理電話呼叫的撥號應用程序,您可以實現呼叫篩選。

具體來說,您的應用程序應該處理意圖ACTION_ANSWER,然後它可以實現類似撥號器的接口或明確地打開撥號器應用程序(或任何其他呼叫管理器)。

0

There are實際上破解Android框架類的方法,它只取決於你想破解哪些。

  1. 您必須擴展您意圖破解的類。
  2. 如果你想重寫包私有方法和/或訪問包私有變量,你可以把你的課放在同一個包
  3. 您可以使用反射

我實際上不得不這樣做來解決錯誤。羅曼在一定程度上是正確的。這完全取決於您試圖破解的代碼的結構。你絕對不能在Android內部破解,但你可以在其他框架類,如活動,查看等。