2011-05-09 107 views
1

我想編輯聯繫人和撥號程序,以選擇顯示暱稱字段,而不是第一個或最後一個名稱。目前在聯繫人應用程序中,如果轉到「菜單>顯示選項>查看聯繫人姓名」,則唯一可用的選項是選擇名字或姓氏。我已經對APK進行了解壓縮並對其所有資源進行了搜索(可能還不夠好),並且無法找到此選項所在的位置。我知道這是個人和許多其他人渴望和要求的功能。不應該很難實現這一點,但我不能找到添加/修改代碼的位置。編輯股票android的聯繫人apk

任何想法?

+1

我不會反編譯的APK其中source代碼可用。找到源代碼並查看。評論,變量名稱等將保持完整,並且應該有文檔 – HXCaine 2011-05-09 20:56:34

+0

@HXCain我假設他想修改某些特定的固件。通常那些沒有可用的代碼,並且變量可能與股票應用程序不同。無論如何,是的,首先瀏覽源代碼是最好的選擇。 – Aleadam 2011-05-09 21:12:26

回答

0

改裝的APK基本上是狩獵十六進制的ID:

在strings.xml中包含文本「名第一」,「姓至上」的字符串或字符串數​​組搜索。找到該字符串或數組的名稱並在這些ID中搜索public.xml。使用這些數字使用這些十六進制ID在數組中搜索smali文件。

  1. 添加一個新進入陣列串
  2. 編譯和重新編譯以創建新的ID考慮到您的新的字符串。
  3. 相應地修改您找到的使用相同ID的smali文件。

提示:如果id以0開始,那麼只使用最後7位數字來搜索smalis。 apktool去除那些零。

提示:尋找display_options_view_given_name_first

瀏覽源代碼的開放可以幫助不少:)

https://android.googlesource.com/platform/packages/apps/Contacts

一個smali文件看作一個翻譯的Java代碼。要開始學習改裝smali文件,請參閱我的答案在這裏:

這裏:

+0

謝謝Aleadam。這很有幫助。儘管我仍然有些困難。我發現strings.xml中的字符串以及smali文件和public.xml中的十六進制ID。 我不知道該從哪裏去。我曾嘗試在strings.xml中爲暱稱添加字符串。它是否應該在public.xml和smali文件中自動生成相應的ID? 感謝您的幫助! – Alex 2011-05-17 15:00:03

+0

@亞馬遜改裝smalis不是一件容易的事。將生成public.xml中的ID,但不會生成smali代碼。你需要自己添加。我添加了幾個鏈接到答案。 – Aleadam 2011-05-17 15:15:09