拿到一个a.apk是个应用管理软件.通过修改strings.xml之后,换了个名字,叫b.apk.安装后显示名称改变了.一切良好
但是当查看已安装软件的时候,发现a软件被标记为已安装.
通过google,得知判断已安装软件列表是通过包名的.所以下一个目标就是改变包名.把原来的com.a ->com.b
中间各种曲折了.略
最后使用了cygwin.在windows下模拟linux执行.执行sed -i /a/b/g 这样的替换.重新编译后看起来ok.但是运行不起来,提示网络错误.
原来原本包里有a.com被我改成了b.com 造成网络无法访问.后来索性执行了一遍b.com 替换为a.com终于ok了.
要点.:替换包名使用cygwin替换好了文件内容后,手动更目录由a->b.然后注意网络访问中包含a的字符串.
注意: sed -i 的替换是正则表达式. 但是grep不是.
如 sed -i "s/a.b/bc/g" `grep a.b -rl .` 其中grep中的a.b 就是a.b,而sed 中的a.b .是正则符号
查找使用命令 grep -n guide_view -r . 可以显示行号