【问题标题】:editing stock android contact apk编辑股票 android 联系人 apk
【发布时间】:2011-05-09 20:55:00
【问题描述】:

我正在尝试编辑联系人和拨号器,以便可以选择显示昵称字段而不是名字或姓氏。目前在联系人应用程序中,如果您转到“菜单>显示选项>查看联系人姓名”,则唯一可用的选项是选择名字或姓氏。我已经反编译了 apk 并搜索了它的所有资源(可能还不够好),但无法找到该选项的位置。我知道这是个人和许多其他人一直渴望和要求的功能。不应该很难暗示这一点,但我就是找不到在哪里添加/修改代码。

有什么想法吗?

【问题讨论】:

  • 我不会反编译有源代码的 APK。找到源代码并浏览它。 cmets、变量名等将保持不变,也应该有文档
  • @HXCain 我假设他想修改一些特定的固件。通常那些没有可用的代码,并且变量可能与股票应用程序不同。无论如何,是的,首先浏览源代码是要走的路。

标签: android contacts apk android-contacts


【解决方案1】:

修改 apk 基本上是寻找十六进制 ID:

在 strings.xml 中搜索包含“First Name first”和“Last Name first”文本的字符串或字符串数​​组。找到该字符串或数组的名称并在 public.xml 中搜索这些 ID。使用这些数字在 smali 文件中搜索使用这些十六进制 ID 的数组。

  1. 在数组字符串中添加一个新条目
  2. 再次编译和反编译以创建新的 ID,同时考虑到您的新字符串。
  3. 使用相同的 ID 相应地修改您找到的 smali 文件。

提示:如果 id 以 0 开头,则仅使用最后七位数字来搜索 smalis。 apktool 去除那些零。

提示:寻找display_options_view_given_name_first

浏览开源代码可能会有很大帮助:)

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

将 smali 文件视为已翻译的 Java 代码。要开始学习修改 smali 文件,请在此处查看我的答案:

这里:

【讨论】:

  • 感谢 Aleadam。这很有帮助。不过,我仍然无法理解。我在strings.xml 中找到了这些字符串,在smali 文件和public.xml 中都找到了十六进制ID。我不知道从那里去哪里。我尝试在 strings.xml 中添加昵称字符串。它是否应该在 public.xml 和 smali 文件中自动生成相应的 ID?感谢您的帮助!
  • @Alex 改装 smalis 并非易事。会生成public.xml中的ID,但是没有smali代码。你需要自己添加。我添加了一些指向答案的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-26
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 2016-02-01
  • 2020-09-04
相关资源
最近更新 更多