家中购买了一台飞利浦70PUF8297/T3的电视,电视不能安装软件,也没有地方能打开工程模式从而打开ADB,在网上搜索有关于本机界面上上下下左右左右的,也有在媒体中心按左上或者数字键的,但是我的电视并没有这些功能。于是自己探索的过程记录一下。
首先,互联网上根据我搜索目前还没有搞定这个电视的办法,另外阅读本文档需要您具备一定的网络和安卓基础知识,本文档不会解释怎么配置基础的软件。本文中用到以下软件/能力:
- tcpdump – 抓包软件
- wireshark – 分析包软件
- 任意的服务器软件,要求能通过路径下载到软件包
- 可以劫持网址的路由器一台(OpenWRT)
- apktool – 分析软件包
- Termux – 安卓的模拟终端软件
- ESExplorer – 安卓,拷贝文件用
- 智慧的头脑,以及使用互联网的能力
在电视上,虽然没办法安装自定义的apk包,但是电视上有内置的应用市场,这就给我们留下了操作的空间,首先在路由器或者其他能抓包的设备上,执行
1 |
tcpdump -i any -w /path/output.pcap |
在启动命令后,马上在电视中应用市场下载任意软件,开始后立刻暂停,然后回到抓包界面停止抓包。之后下载output.pcap到本机,使用wireshark打开。
在wireshark中,设置过滤器为http,如果你上一步操作没有意外的话,此时结果很少,如下图所示:
在这里可以看到一个很明显的GET,结尾为apk的路径(图中选中),这就是要劫持的东西,点击查看可以获取到下载的地址:
现在可以在路由器上将 pcdn-tv-appstore.funshion.com 解析指向你预备好的服务器,并将termux软件安装包命名为 apk_12ce4a06a113436dad64fd958f7c0238.apk ,放在服务器的ott/apk/com_mirageengine_tv_cztbkt/路径下,操作完毕后在电脑上尝试下载,查看是否为你定好的软件。若操作正常,可以回到电视上进行下载,此时下载的内容应该重新开始,安装后电视就有termux软件了,同理,安装ES文件浏览器。
打开Termux终端模拟器,操作:
1 2 3 4 5 6 7 |
PA1M_CN_MT9638:/ $ pm list packages|grep factory package:com.tpv.factory package:mediatek.factorymenu.ui package:com.mediatek.tv.factory PA1M_CN_MT9638:/ $ pm path com.tpv.factory package:/system/product/app/TPVFactory/TPVFactory.apk PA1M_CN_MT9638:/ $ cp /system/product/app/TPVFactory/TPVFactory.apk /storage/emulated/0/Download |
复制成功后,打开ES文件浏览器,将apk文件复制到本地,执行下列命令反编译APK
1 |
apktool d .\TPVFactory.apk -o output |
反编译完成后,打开output目录中的AndroidManifest.xml文件,可以看到文件中的一部分
1 2 3 4 5 6 7 8 9 |
<activity android:exported="true" android:launchMode="singleTask" android:name="com.tpv.factory.ui.designmenu.TPVMenuActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"> <intent-filter> <action android:name="com.tpv.factory.intent.action.tpvfactory"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.MAIN"/> </intent-filter> </activity> |
在这里可以找到activity的名称:com.tpv.factory.ui.designmenu.TPVMenuActivity。接下来,回到电视上打开termux,执行
1 |
am start --user 0 com.tpv.factory/.ui.designmenu.TPVMenuActivity |
此时,电视右侧弹出工厂菜单,即可打开adb,大功告成。