最近, 各种Android电视盒子, 由于某些不可告人(大家都懂得)的原因, 好多应用被强制删除了, 比如沙发管家, VST全聚合.
晚上花了几分钟时间, 把沙发管家又装回来了, 以供参考.
方法有好多种, 最简单的在设置里就可以找到, 当然我不会用这种最傻的办法, 而是用了某些强大的黑科技nmap
简单说nmap是一个可以扫描网络中计算机端口的嗅探器, 甚至连目标主机操作系统也可以侦测到.
brew install nmap
sudo apt-get install nmap
sudo nmap 192.168.199.1/24 -v -sS
... Nmap scan report for Box-a6076782498681e5.lan (192.168.199.165) Host is up (0.012s latency). Not shown: 995 closed ports PORT STATE SERVICE 4000/tcp open remoteanything 5555/tcp open freeciv 7100/tcp open font-service 7200/tcp open fodms 8899/tcp open ospf-lite MAC Address: 5C:C6:D0:DB:40:0F (Skyworth Digital technology(shenzhen)co.ltd.) Initiating SYN Stealth Scan at 20:40 Scanning Jianqings-MBP.lan (192.168.199.190) [1000 ports] Discovered open port 22/tcp on 192.168.199.190 Completed SYN Stealth Scan at 20:40, 5.28s elapsed (1000 total ports) Nmap scan report for Jianqings-MBP.lan (192.168.199.190) Host is up (0.000011s latency). Not shown: 971 closed ports, 28 filtered ports PORT STATE SERVICE 22/tcp open ssh ...
上面就是结果, 想必你已经知道了那个Box-a6076782498681e5.lan就是天猫盒子了
adb connect 192.168.199.165
jianqings-mbp:workspace pjq$ adb devices
List of devices attached
192.168.199.165:5555 device
OK一切都进展顺利, 之后就可以像操作一台手机一样, 用adb命令做你想做的任何事情
比如安装沙发管家
adb install -r ~/Downloads/com.shafa.market_4.4.3_webwww.apk
当然你也可以备份沙发管家APK到盒子SDCARD
adb push /Users/pjq/Downloads/com.shafa.market_4.4.3_webwww.apk /sdcard/
之后在应用列表里就可以找到沙发管家, 安装你想要的任何应用.
如果这个方法失败了, 那后面就要想其它的方法了.
事实证明, 虽然可以安装成功, 但是过不了多久就又被删除了
后来做了一次RESET, 然后在路由器中禁用了以下域名
tvupgrade.yunos.com osupdate.aliyun.com osfota.cdn.aliyun.com osupdateservice.yunos.com yunos.com aliyun.com
hiwifi hosts:
127.0.0.1 tvupgrade.yunos.com 127.0.0.1 osupdate.aliyun.com 127.0.0.1 osfota.cdn.aliyun.com 127.0.0.1 osupdateservice.yunos.com 127.0.0.1 yunos.com
好吧, 就算我屏蔽了它的相关host, 在重启之后, 它还是把系统更新了, 想必是没有完全屏蔽掉所有的域名或者是服务器IP.
就拿HDP直播为例吧, 发现我每次用沙发管家安装的时候, 貌似安装完之后, 立刻就会被删除, 猜测它维护了一个应用package name列表, 当检测到的这个package name的时候就直接执行了删除程序.
如果真是这样的话, 那我的唯一方法就是把HDP直播package name换掉, 这是我最不想看到的方式了, 因为这意味着我要把HDP直播反编译, 修改里面的包名, 并改掉相关的smali文件.
反编译破解一个APK并没有花掉几分钟
相关反编译工具, 我之前整理过, 直接拿来用就可以
git clone https://github.com/pjq/android_apk_tool cd android_apk_tool ./apktool D HDP_61.apk cd HDP_61 vim AndroidManifest.xml
这里我把它原来的包名从hdpfans.com改为com.aliyun.os, 这个就不要怪我了
查找一下哪些地方有“hdpfans.com”
grep -i -R "hdpfans.com" * vim smali/hdp/http/MyApp.smali vim smali/hdp/player/ft.smali vim smali/hdp/player/LivePlayerNew.smali
直接使用了vim sed “:1,%s/hdpfans.com/com.aliyun.os/gc”人肉一个一个替换
改为之后, 就是重新打包APK了
cd .. ./apktool B HDP_61
再重新对APK进行签名
cd resign_tool/ ./resign_apk.sh ../HDP_61/dist/HDP_61.apk
得到签名之后的文件
HDP_61_signed.apk
最后安装
adb install -r HDP_61_signed.apk
居然正常安装成功, 并且成功启动应用, 找到湖南卫视正常播放, 真的好意外, 居然一次就搞定了
PS.整个过程貌似10分钟就搞定了
最后我得到了一个应用, 包名是 com.aliyun.os 相信阿里会认的吧, 看起来就像是直系亲属