首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新编译系统应用程序

重新编译系统应用程序
EN

Stack Overflow用户
提问于 2013-08-18 22:19:36
回答 1查看 1.6K关注 0票数 0

因为我正在创建自定义ROM,所以我想从settings.apk中删除一些条目,因为无法用XML隐藏首选项,所以我必须从apk中更改源代码,并从PreferenceScreen中删除首选项。因此,我用classes.dex解压缩了dex2jar,复制了源代码,并添加了以下行:

代码语言:javascript
复制
getPreferenceScreen().removePreference(findPreference("toggle_wifi"));

现在我的问题是我不知道如何重新编译这个应用程序。我无法用Eclipse编译它,因为它使用了一些系统名称空间(在Eclipse中,这是一个错误,所以我无法编译),我如何重新编译这个应用程序?我只有*.java文件。

编辑:我添加到smali文件中的smali代码:

代码语言:javascript
复制
invoke-virtual {p0}, Lcom/android/settings/WirelessSettings;->getPreferenceScreen()Landroid/preference/PreferenceScreen;
move-result-object v12
const-string v13, "toggle_wifi"
invoke-virtual {p0, v13}, Lcom/android/settings/WirelessSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v13
invoke-virtual {v12, v13}, Landroid/preference/PreferenceScreen;->removePreference(Landroid/preference/Preference;)Z

invoke-virtual {p0}, Lcom/android/settings/WirelessSettings;->getPreferenceScreen()Landroid/preference/PreferenceScreen;
move-result-object v12
const-string v13, "wifi_settings"
invoke-virtual {p0, v13}, Lcom/android/settings/WirelessSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v13
invoke-virtual {v12, v13}, Landroid/preference/PreferenceScreen;->removePreference(Landroid/preference/Preference;)Z

invoke-virtual {p0}, Lcom/android/settings/WirelessSettings;->getPreferenceScreen()Landroid/preference/PreferenceScreen;
move-result-object v12
const-string v13, "toggle_bluetooth"
invoke-virtual {p0, v13}, Lcom/android/settings/WirelessSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v13
invoke-virtual {v12, v13}, Landroid/preference/PreferenceScreen;->removePreference(Landroid/preference/Preference;)Z

invoke-virtual {p0}, Lcom/android/settings/WirelessSettings;->getPreferenceScreen()Landroid/preference/PreferenceScreen;
move-result-object v12
const-string v13, "bt_settings"
invoke-virtual {p0, v13}, Lcom/android/settings/WirelessSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v13
invoke-virtual {v12, v13}, Landroid/preference/PreferenceScreen;->removePreference(Landroid/preference/Preference;)Z
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-18 22:21:49

您可以在以下链接中找到详细的教程:

反编译

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18304210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档