2011-05-09 70 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