记录一下NW-ZX1折腾过程(添加自动停止播放功能)

996.icu LICENSE

  • 问题背景
  • 解决方法
  • 总结

阅读之前注意:

本文阅读建议用时:10min

问题背景

需求非常简单,一款挺早的音乐播放器——索尼NW-ZX1,其自带的音乐播放程序,竟然没有定时器的功能,于是尝试添加定时停止播放功能。

解决方法

首先要拿到对应的apk文件。参考之前的Android获取当前应用的apk。未做任何修改的情况下,发现直接adb install xxx.apk到我的一台安卓测试真机,提示xxxx-1/base.apk code is missing。
搜索知道是缺少对应的odex文件。

参考Android odex文件反编译,先用adb拉取了对应的odex文件,然后反编译为classes.dex。

再参考Android如何修改classes.dex文件后重新放入apk中,把classes.dex加入到了apk中。这次adb install xxx.apk到测试真机,提示是设备缺少一个支持库。如果是adb install xxx.apk到原NW-ZX1,则提示Failure [INSTALL_FAILED_ALREADY_EXISTS],也就是已经安装了,无法安装同名的。

此时参考APK包名修改,再次安装到NW-ZX1,还是提示已经安装,可能某个地方没改,待我继续研究下。

apk包名修改完成了,值得注意的是:AndroidManifest.xml中只修改package name,即"com.sony.walkman.mediaplayers.wm2"->com.sony.walkman.mediaplayers.xm2cc,然后在smali文件夹中修改 路径名,即com/sony/walkman/mediaplayers/wm2->com/sony/walkman/mediaplayers/xm2cc,最后,在res文件夹中同样修改package name。
在这里插入图片描述
但是上面的方法有地方处理的不正确,导致安装后打开会闪退,模拟器是提示缺少设备支持库,而NW-ZX1则是提示路径修改不正确。
后来,找到了另一个 工具。参考APK 包名修改工具则可以得到新包,并且安装后不会闪退。

经过apktool反编译,修改了smali代码。目前已经完成自动停止播放的功能。见下图:
在这里插入图片描述 在这里插入图片描述

总结

用对工具,一切都是水到渠成。

如果本文对你有帮助,不如请我一罐可乐吧 🍺
在这里插入图片描述

参考资料

  1. INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 解决方案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值