将android反编译apk生成的代码里的id数字替换成public.xml文件里对应的name
有过反编译经验的人都会发现这个问题:反编译了一个apk,但是代码里的id全是数字,
这是代码里的内容,id是十进制:
this.mHeaderTextView.setText(2131428266);
localTextView.setText(getResources().getString(2131428311));
对应的name在生成的另一个public.xml文件里,
这是public里的内容,id是十六进制:
<public id="0x7f010042" name="layout_widePaddingRight" type="attr" />
<public id="0x7f020000" name="ab_dropdown_navigation_item_background" type="drawable" />
<public id="0x7F0B03AA" name="exporting_contact_failed_title" type="string" />
代码有点多,所以一个个手动代码有点不现实,
问题来了,请问这个怎么弄个脚本或批处理将代码里的数字代码成像R."type"."name"这种格式?
如:this.textView.setText(2131428211)
代换成this.textView.setText(R.string.title)
这有个参考帖,
http://blog.csdn.net/annkie/article/details/7790026
但他是R.java,我的是public.xml,
而且用的是perl,不会perl,
所以不知道怎么改。
解决方案:找个批量十进制转十六进制的工具逐个转换,对照替换就ok,这里附上一个在线转进制的网站:https://tool.lu/hexconvert/
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)