ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

用ADB给智能电视安装应用:绕过未知来源限制的完整实操指南

用ADB给智能电视安装应用:绕过未知来源限制的完整实操指南 前阵子有个朋友找我说家里那台智能电视不知道怎么回事商店里能装的应用少得可怜想装个第三方播放器U盘插上去半天没反应文件管理器里能识别APK却死活不给装系统一直弹“禁止安装未知来源应用”在设置里翻遍了也没找到能放开限制的开关。他问我有没有什么办法我说你这种情况直接用adb工具给电视装就行这也是从业这几年来遇到最多的一种电视装应用方案。实际上市面上不少智能电视系统是定制过的屏蔽了文件管理器安装入口或者压根没有“未知来源”这个选项这种情况下ADB工具反而是最有效的手段它不依赖电视自带的应用商店和U盘安装通道只要电视开着网络电脑上执行几条命令就能把APK推送过去完成安装。这篇文章就把我从工具准备、电视端开关设置、连接命令到各种装不上、连不上的报错怎么处理整个流程都捋一遍适合家里电视是小米、创维、索尼这些安卓系产品、被应用安装折腾到头大的朋友参考。1. 先弄明白为什么电视“装不了”应用ADB是怎么绕过去的1.1 电视装不上应用的几种常见原因很多人一开始以为是自己的操作姿势不对实际上大多数电视装不上应用跟操作关系不大问题出在电视自身的系统设计上。这里我按自己接触过的电视固件情况总结了一下基本是下面这几种原因。有些电视系统为了安全考虑直接在固件层把关掉了“允许安装未知来源应用”的功能设置菜单里根本没有这个选项或者有选项但默认锁死你在电视上用任何方式打开APK文件都会被拦截系统直接提示“安装失败”“不允许安装未受信任的应用”。这类限制以老款创维、部分运营商定制盒子、某些早期小米电视固件比较常见。有些电视虽然保留了文件管理器但是对APK做了规则限制只能安装签名跟系统某个已安装应用完全一致的包否则无论你怎么点都提示“签名不同”或者“安装失败”。这个情况在新旧设备上都可能出现尤其是系统里已经预装了一个同包名的旧版本应用你再装一个不一样签名的版本系统就直接拒绝。后面我会专门讲这个签名冲突怎么处理。还有一类是文件管理器压根不显示APK有的电视把APK文件放在U盘里能看见但点击后没有任何反应或者干脆连文件都不展示这种情况多半是文件管理器对存储权限做了严格限制APK被当成不可识别的文件类型处理掉了。上述几种情况里前两种用U盘基本无解因为系统层面的拦截优先级高于文件管理器靠改文件后缀名、换U盘、重启电视这类方法都绕不过去。这时候ADB的价值就体现出来了它是安卓系统自带的官方调试通道电视的权限控制机制对ADB来源的安装请求通常放行得比文件管理器宽所以能绕过商店和文件管理器层面的拦截。1.2 ADB在这个场景里的真正角色ADB的全称是Android Debug Bridge安卓调试桥是安卓官方提供给开发者和维护人员的一套命令行工具。你可以把它理解成电视系统开的一扇后门——当然这是官方后门不是漏洞安卓系统默认就带这个功能只是厂商在零售产品上默认把它藏起来了需要自己到开发者选项里打开。它干的事情特别直接电脑通过adb命令连接电视把APK文件直接推到电视内部安装接口上由系统底层的PackageManager服务去执行安装流程。PackageManager是安卓系统里专门管应用安装卸载的模块它的权限级别比文件管理器高得多。你在电视上点APK安装流程是“文件管理器 → 系统安装界面 → PackageManager”中间两道关卡都可能被拦截而ADB是“adb客户端 → PackageManager”中间不经过文件管理器和安装界面拦截面少了一大截。这也是为什么很多电视在文件管理器路径上装不了APK却能用adb install成功装上。不是ADB有什么特殊的破解能力而是它走后门路径短能绕开普通用户入口的限制。有一点需要先说明如果电视系统本身对ADB的安装来源也做了限制比如固件级别的商业定制系统只允许自家商店包安装那么ADB也救不了你这种情况只能找厂商后台开通或者刷机处理。但就我接触过的家用电视来说绝大多数安卓系产品ADB安装都是可用的尤其是小米、索尼、创维这些品牌的通用安卓系统。1.3 准备工作清单需要什么、不需要什么在动手之前先把需要的装备和条件列清楚免得折腾一半发现少东西。电视系统是安卓系统一般2016年以后出厂的智能电视都可以安卓版本通常4.4到12不等低版本安卓4.4的电视也能用ADB命令兼容性没问题。电视需要联网建议和电脑处于同一个局域网内不然连接会比较麻烦。使用无线连接的方式时同一个路由器下面的网段一致最好。电脑系统是Windows、macOS、Linux都行下文以Windows为主要演示。需要知道电视的IP地址和ADB调试端口端口一般默认是5555。电脑上准备好ADB工具包这个等一下我会详细说怎么获取和配置。目标APK文件也就是你想装的第三方应用安装包注意别下成x86架构的桌面版软件这是电视版安卓系统要下APK格式且尽量下载适配电视架构的版本。这里要提前排掉一个误区整个过程不需要对电视进行任何刷机、破解、root操作也不需要拆机或者改动系统文件都是在正常系统状态下用官方工具完成的。所以风险等级很低顶多就是设置不当导致ADB连不上不会把电视搞坏这一点心里先有底。2. 前期准备的核心细节电视端开关和电脑端adb环境2.1 电视端怎么打开开发者选项和ADB调试电视上的ADB调试开关并不会默认显示在设置页面里它藏在开发者选项里而开发者选项又是一个默认隐藏的菜单。要把它弄出来绝大部分电视都遵循同一条规律在“设置 → 关于”里找到“产品型号”或者“版本号”这一类条目用遥控器在上面连续点按7次以上系统就会提示“已进入开发者模式”或者直接多出一个“开发者选项”菜单。这里注意一下不同品牌电视的入口名称有些差异有的叫“设备信息”有的叫“系统信息”有的叫“产品型号”多试几个总没错。连续点按的时候不用太快每次间隔半秒左右如果按到了设置页面弹窗提示成功说明开发者模式已激活。开发者模式打开后回到设置页面的“更多设置”或者“系统”分类下就能看到“开发者选项”了。进去以后需要关注这几个位置“USB调试”——有的电视标注为“USB调试模式”或者“ADB调试”把它打开。“网络调试”——部分电视的ADB调试分为USB调试和网络调试两种无线连接需要开启的是网络调试也叫“无线调试”“ADB网络调试”。有的电视只提供一个总开关那就直接打开总开关即可。以我实际接触过的电视来说小米电视一般路径是“设置 → 通用设置 → 开发者选项”进去把“USB调试”打开其他品牌可能藏在“设置 → 高级设置 → 开发者选项”。索尼电视一般路径是“设置 → 关于 → 版本”连点后回“设置 → 开发者选项”。老款创维的入口比较隐蔽有的需要通过工厂菜单才能打开ADB具体方法按型号搜一下“创维电视打开ADB”基本都有但综合来看思路都是把开发者选项调出来就行。开启后系统可能会弹一个“允许USB调试吗”之类的对话框不过通过无线方式连接时这个确认框通常是在adb connect之后才出现并且只在第一次连接时弹出用遥控器选择“允许”或者“确定”即可。2.2 电脑端ADB工具包的获取与安装ADB工具包其实是一组可执行文件不需要安装下载后解压就能用。但要把它配置到系统的环境变量里这样在任意目录打开命令行窗口都能直接执行adb命令不然每次都得到解压目录里去敲命令麻烦得很。工具包从哪里拿比较省心我的建议是直接从Google官方下载Android SDK Platform Tools对应Windows版本是一个zip压缩包解压后里面有adb.exe、AdbWinApi.dll、AdbWinUsbApi.dll这几个文件缺一不可。如果你没条件访问官网用搜索引擎搜“platform-tools”也能找到很多第三方镜像下载下来跟官方内容是一样的。解压后的文件夹位置自己记住比如我一般放在“D:\platform-tools”然后配置环境变量右键“此电脑” → “属性” → “高级系统设置” → “环境变量”在系统变量里找到Path点击编辑新建一条把platform-tools的路径粘进去确定保存。操作完成后重新打开命令提示符窗口输入“adb version”如果能看到类似Android Debug Bridge version 1.0.41这样的输出说明环境配置成功。要是你觉得配置环境变量这一步太麻烦还有一个偷懒方法直接把platform-tools目录里的adb.exe拖到cmd窗口里让系统自动补全路径然后带上命令参数运行。虽然每次操作都要拖一次但也能用。我个人还是建议一次把环境变量配置好后面命令能少打不少前缀。2.3 驱动问题无线连接其实不太需要单独装驱动很多教程会让你装USB驱动那是针对手机通过USB线连接的情况。电视这种方法建议使用无线连接不走USB所以驱动方面的坑相对少。如果你非要用USB线连电视那确实得装对应品牌的ADB驱动但实际操作里会遇到电视USB口是不是支持ADB调试通道的问题不少电视的USB口只开放给存储设备根本不通ADB所以我的建议很简单优先用无线网络连接免得在驱动的泥巴里折腾。如果是老电视系统安卓版本特别低比如Android 5.0以下可能有时候无线方式连接后执行adb install会提示“device not found”或者“连接已断开”这通常是电视端网络模块对长连接的稳定性差导致的。可以尝试在电视上关闭再打开ADB调试开关或者重启电视网络具体我在后面常见的部分里再细说。3. 实操阶段从连接电视到安装成功全流程3.1 用adb connect建立连接确认设备在线电视的ADB调试开关打开并联网后先在电视的设置里查到它的IP地址。路径通常是“设置 → 网络 → 有线网络/无线网络 → 查看网络详情”里面会显示一个类似192.168.1.100的地址记下来。然后电脑上打开命令提示符依次执行下面的步骤。第一步启动ADB服务adb start-server第二步连接电视把IP地址替换成你自己的adb connect 192.168.1.100:5555这里的5555是ADB默认的网络调试端口。如果你的电视在开发者选项里提供了自定义端口设置那就以电视上显示的端口为准。比如有些索尼电视的调试端口不是固定5555会在开发者选项里显示出来连接的时候就得写成对应的端口号。执行connect命令后结果一般有两种connected to 192.168.1.100:5555说明连接成功unable to connect to 192.168.1.100:5555说明失败了可能原因包括电视ADB开关没打开、电视和电脑不在同一网段、IP地址写错、端口不对、或者电视需要先弹窗确认。还有一种是电视屏上弹出“允许USB调试吗”的对话框这时候需要先到电视上点“允许”电脑端的连接才能建立成功。第三步确认设备在线状态adb devices执行结果里会列出一行设备列表如果你看到类似192.168.1.100:5555 device这样的输出说明设备状态正常。如果显示的是offline或者unauthorized就说明连接虽然建立了但还没被电视授权或者授权状态异常。offline的时候多试一次adb disconnect再connectunauthorized的话去电视上找到那个调试授权弹窗点击允许即可。这里我把几个常见状态和它们的含义整理成了一个表方便你对照排查状态含义处理方式device正常连接可以执行安装命令直接进行下一步offline电视端ADB服务异常或网络不稳定重新connect或重启电视ADB开关unauthorized电视端调试授权未通过到电视上确认允许授权弹窗no devices未检测到设备检查IP端口、网段、ADB开关状态每次开机后电视的IP地址可能会变化所以如果连接不上先回电视设置里重新确认一遍IP。也可以把电视的IP在路由器后台设置成静态分配这样以后连接就不用每次查地址了。3.2 安装、覆盖安装、卸载以及查看包名连接成功后装应用这件事就变得非常简单了。把APK文件放到电脑上一个好找的位置比如D盘根目录然后执行adb install D:\tvbox.apk看到success的提示就是安装成功了电视上应用列表里就能找到刚装的应用。如果APK比较大比如几百MB的当贝市场、Kodi这类安装过程可能需要一两分钟耐心等待即可不要中途按CtrlC打断。如果电视上已经装过同名的应用直接adb install会报错提示INSTALL_FAILED_ALREADY_EXISTS意思是你已经装过了或者包里名相同。此时用cover安装的方式保留应用数据并覆盖旧版本adb install -r D:\tvbox.apk-r参数表示允许覆盖安装这是日常使用中频率最高的一条命令。比如从网上下载了某个应用的新版本直接用这个命令覆盖电视上的旧版本就能跳过“不允许覆盖安装”的限制。另外还有一个带-d参数的安装命令表示允许降级安装也就是把高版本覆盖到低版本上去。这个操作在某些需要回退版本才能正常使用的场景下很管用adb install -d D:\tvbox.apk说完安装说卸载。如果你装上去的应用想删掉虽然在电视应用管理里可以直接卸载但如果你怀疑是因为系统应用冲突导致的问题在ADB里卸载更干净。先查看包名adb shell pm list packages | findstr tvbox这里的findstr是Windows过滤命令macOS和Linux用grep。pm list packages会列出电视上所有已安装应用的包名过滤关键字能找到目标应用对应的包名。拿到完整包名后比如com.example.tvbox执行卸载命令adb uninstall com.example.tvbox注意卸载命令必须用完整的包名不能只写应用名称。这里也顺带分享一个小技巧想快速知道电视上某个应用的包名可以先在电视上找到这个应用点开详情页看系统是否显示了“包名”字段如果没有就直接用pm list packages配合关键字过滤比在安装包里翻AndroidManifest文件快得多。3.3 把APK推到电视本地后再安装适用于网络不稳的情况直接adb install是电脑把APK通过一条长连接推送到电视安装。如果无线网络信号弱、电视Wi-Fi波动大安装大体积应用时容易中途失败报INSTALL_FAILED_INVALID_URI之类的问题。这时候推荐用两步走的方式先把APK推到电视本地存储再从本地执行安装。第一步推送文件到电视的下载目录adb push D:\tvbox.apk /sdcard/Download/第二步进入shell环境执行安装adb shell pm install /sdcard/Download/tvbox.apk这套方式的好处是如果网络偶尔波动push中断了可以断点重试重试成本比直接install失败后重新传输要低。另外它也是排查问题的手段如果push成功了但pm install报错至少能初步判断问题出在电视系统侧而不是传输环节。执行完安装命令后如果屏幕上没有明确输出success可以到电视的应用列表里检查应用图标是否出现了。有时候ADB命令执行时电视端已经弹出了安装确认框需要遥控器确认一下。不过在我遇到的大多数电视上ADB安装是静默完成的不会弹任何确认直接就在应用列表里出现了。安装完应用后先用遥控器打开试一下运行是否正常。如果有个别应用打开就闪退先考虑是不是应用版本不是TV版有的应用虽然是APK格式但按手机版做的交互在电视上打开会不适配再考虑是不是安卓版本太老应用要求的系统版本比电视高。这两个问题都跟ADB安装本身没关系属于应用兼容性问题。4. 现场问题排查那些高频出现的报错和“连不上”4.1 adb unauthorized、connect超时这类连接问题怎么处理用ADB连接电视最常见的两类连接问题就是unauthorized和connect超时这里分别讲一下我实测下来是怎么解决的。先看unauthorized。这个提示意味着TCP连接是通的但电视还没有批准这台电脑进行调试。原因通常是电视端弹出了“允许USB调试吗”的对话框但你没来得及点确认或者不小心按了“取消”再或者遥控器按确认后仍然提示unauthorized可能是系统授权缓存没有更新。我的排查步骤按顺序来先看电视屏幕上有没有仍挂着的授权弹窗有就用遥控器点击“允许”没有的话执行adb disconnect断开连接再去电视的开发者选项里把USB调试开关关闭再重新打开然后回到电脑重新adb connect。如果电视支持管理“调试授权记录”可以进去清掉之前给这台电脑的授权记录重新连接会再次弹窗这时候确认允许就好了。再讲connect超时。这个报错表示电脑发出的连接请求根本没有被电视响应问题可能出在网络上也可能出在电视端。第一步检查IP地址有没有写错这是最高频的错误没有之一。第二步检查电视和电脑是不是在同一网段比如电视是192.168.1.100电脑是192.168.2.10那就属于跨网段了路由器如果没开启设备互通连不上很正常。最简单的验证方法是电脑上用ping命令ping 192.168.1.100能ping通说明网络链路是通的ping不通就要先查路由器设备隔离设置、无线网是否双频隔离这类网络问题。第三步检查电视的ADB调试开关是否打开。有些电视开发者选项里会同时有“USB调试”和“ADB网络调试”两个开关只开了前一个是连不上的必须把网络调试相关的开关也打开。还有的电视开发者选项里会有个“调试授权”列表如果里面已经是空的或者显示“未知设备”说明电视从未允许过任何来源的调试请求。如果以上都检查了还是超时最后一个办法是把电视重启一下然后重新打开ADB开关再执行连接命令。电视系统常年待机偶尔会导致服务异常重启能清掉很多莫名其妙的状态。4.2 安装时签名冲突和INSTALL_FAILED_UPDATE_INCOMPATIBLE这类问题在给小米电视装应用的时候特别常见热搜里那句“小米与已安装应用签名不同”说的就是这个事。它的报错通常是INSTALL_FAILED_UPDATE_INCOMPATIBLE翻译过来就是你想安装的应用换了签名而系统里已经存在一个同包名的旧版本应用新旧版本签名不一致系统拒装。为什么会签名不一致核心原因有两个方向。一种是你想装的APK来自第三方重新打包过的版本作者换了签名另一种是电视系统里预装了一个同包名的应用比如某个厂商内置的瘦身版、定制版跟你要装的公开版签名不同。处理思路主要有下面几种按推荐顺序排列。思路一先卸载系统里已存在的同包名旧版本再安装新版本。以电视预装应用为例先查包名adb shell pm list packages | findstr 包名关键字查到完整包名后直接卸载adb uninstall 完整包名这里要注意如果是系统预装应用adb uninstall能否卸掉取决于电视系统是否允许。允许的话卸载后重新安装目标APK即可如果卸载失败说明这个包被系统保护了需要用pm uninstall -k --user 0这类方式绕过但这已经属于半保留性质的操作我就不展开了免得话越说越偏。思路二给APK重新签名让它的签名跟电视中已有应用保持一致。这个方法的原理是用签名工具对APK重新打包把签名改成跟系统预装版本一样的签名。听起来高大上实际操作也很繁琐需要先拿到预装应用的签名文件然后对APK进行重打包。对普通用户来说这条路显然不合适我更建议换个思路不用这个出现签名冲突的应用直接找同名应用的其他渠道包换一个版本试。思路三也是最省心的在装新版本之前先备份电视上旧应用的数据然后直接覆盖安装碰碰运气。某些电视系统在签名冲突时虽然报错但如果旧版本应用升级前的数据可以迁移使用adb install -r也不一定能解决签名冲突所以这个思路只适合旧版本和新版本签名恰好一致、只是版本号更低或更高有冲突的情况。如果签名确实不同再怎么加参数也白搭。另外还有一个我遇到过的情况小米电视系统更新后部分的系统预装应用版本升级了但签名换成了新的导致你想装的第三方修改版无法覆盖或安装。这种就不太建议折腾重签名了直接考虑能不能通过替换包名的方式装成另一个应用。有的应用支持自定义包名比如一些开源播放器你可以在打包时改包名这样就不会跟预装应用冲突了。4.3 电视上无法弹窗、静默安装不生效的情形有些电视品牌出于安全考虑在固件里设置了“即使是ADB安装也要在电视上弹窗确认”的机制。也就是说你执行adb install后电脑端会卡住不动而电视屏幕突然弹出一个类似“是否安装”的对话框需要遥控器点击“安装”或者“确定”才能继续。这时候如果屏幕没弹可能是弹窗被系统拦了或者在后台等待可以观察一下电视屏幕切换当前信号源到电视主页看有没有弹窗提示。相反的另一种情况是ADB安装全程没有任何弹窗你以为成功了查应用列表却没有。这多半是因为执行完adb install命令后命令提示符输出的是success但应用被系统安装到了其他用户空间或者因为系统限制没有在首页创建图标。此时进入电视的“应用管理”在“全部应用”里面找一下应用可能在列表里但没被放到主页需要手动设置显示出来。如果连“全部应用”里也没有那就得考虑安装是不是被静默拦截了。可以检查电视的“安全与限制”设置里有没有“应用安装”相关的权限项个别带儿童模式的电视系统会默认限制第三方应用。把这个限制关掉后重新执行一次安装命令。还有一个细节很多人不知道有些电视的ADB安装对APK大小有上限限制比如只能装小于200MB的包超过这个大小就报INSTALL_FAILED_MEDIA_UNAVAILABLE。这种情况下建议把APK先推到电视本地再用shell命令从本地安装adb push D:\大文件.apk /sdcard/Download/ adb shell pm install /sdcard/Download/大文件.apk本地安装路径比网络直传更稳定遇到包体过大导致传输失败的概率能降下来不少。5. 电视品牌差异和安装后的一些实用经验5.1 小米、创维、索尼等电视的ADB开启与安装差异不同品牌电视对ADB的支持程度和使用习惯不同这里把经常有人问的几个品牌单独拎出来说。小米电视的入口相对规整大部分型号在“设置 → 通用设置 → 开发者选项”里直接有USB调试的开关打开之后按上面讲的无线连接方式操作就行。但小米电视还有个容易忽略的点部分固件需要在“设置 → 账号与安全 → 安装未知来源应用”那里也允许一下不然即使ADB装上了应用在运行时也可能因为外来源策略受限。如果你用的是较新的小米电视版本差异可能导致开发者选项名称叫法不一有的叫“调试模式”有的叫“ADB调试”找关键词就行。创维电视的情况分两类。比较新的酷开系统相对宽松开发者选项里就能找到ADB调试点但老款创维电视的ADB开关藏得比较深有些型号需要通过工厂菜单才能打开。这里我不建议普通用户为了装个应用去动工厂菜单风险高不说有的版本进去也找不到对应选项。更适合老款创维用户的方式是先在设置里翻一下有没有“通用设置 → 开发者选项”如果没有就放弃ADB这条路考虑用U盘结合自带安装管理器试试或者直接联系客服询问该型号是否支持开放性安装。索尼电视剧的安卓系统比较原生开发者选项的开启方式跟手机几乎一样设置 → 关于 → 连续点击版本号激活开发者模式然后去开发者选项里打开USB调试。索尼电视通过ADB装应用的成功率很高因为系统本身对ADB来源的安装基本不怎么拦截这也是索尼电视用户玩第三方播放器比较多的原因之一。除了这三个品牌像海信、TCL、康佳这些电视只要系统里能找到开发者选项操作流程都是一样的。找不到也别硬找有些电视为了过认证或者出于系统稳定性考虑把开发者选项完全移除了这种情况ADB这条路就是不通的不用纠结这不是你的技术问题。5.2 高效装机的几个小技巧批量安装、自动确认、备份数据讲解完基本命令我顺便把平时自己用着比较顺手的几个小技巧也放上来但是考虑到你正在问我相关经验我想在读完这一段之后你也能有花时间更长时间的掌控权感。批量安装多个APK是ADB相比U盘安装优势非常明显的一个点。把多个APK放在同一个文件夹里然后用shell脚本循环执行安装即可。Windows下可以这样写一个批处理文件for %i in (D:\apks\*.apk) do adb install %i注意直接粘贴到cmd窗口运行时for循环变量%i写一个百分号如果保存为.bat批处理文件需要写成%%i。这个批处理会把文件夹下所有APK文件依次安装到电视上省去一个个单独执行命令的工夫。在Windows上如果遇到每个APK都需要排队等待的问题建议在for循环前先执行adb start-server避免多个adb实例同时启动导致连接冲突。免确认安装一直是很多人的真实感受但是这里还是要说清楚ADB安装本身是静默的跟U盘安装时反复点“允许未知来源”“确认安装”“完成”这些按钮是两回事真要是遇到了每次安装都弹确认框那属于电视系统固件强制行为不是ADB命令可以屏蔽的。再一个实用技巧是备份应用数据。如果电视上的某个应用你已经用出了很多账号配置和偏好设置下次装系统或者换新电视时可以用ADB把应用数据完整拷出来。先查包名adb shell pm list packages | findstr 包名关键字再用备份命令adb backup -f E:\backup.ab 完整包名备份得到的.ab文件可以拿到另一台电视上恢复adb restore E:\backup.ab注意备份恢复这个功能在部分新版安卓系统上对第三方应用做了限制应用本身必须允许备份才会生效。对于支持的应用这套操作能帮你省下不少重新配置的时间。不过我的实际感受是电视应用的数据恢复需求比手机少很多如果以后真用到了知道有这么一条路就行。5.3 安装后的权限设置与使用建议应用装好后不少人在使用环节又会碰到新的权限问题。电视上没有像手机那样明显的权限弹窗提醒很多应用的存储权限、定位权限、麦克风权限默认是关闭的导致某些功能无法正常使用。这时候可以用ADB来授予权限命令格式为adb shell pm grant 完整包名 android.permission.READ_EXTERNAL_STORAGE用法是先把想授权的权限名称替换到命令里。常见的权限类名包括android.permission.READ_EXTERNAL_STORAGE读存储、android.permission.WRITE_EXTERNAL_STORAGE写存储、android.permission.ACCESS_FINE_LOCATION精确定位、android.permission.RECORD_AUDIO麦克风录音。授完权限后重启一下应用就能生效。如果你的电视应用需要读取U盘里的文件而应用列表里找不到U盘里的内容很可能就是存储权限没有授予。还有一种用ADB启动应用的方法适合那些装上后没在主页显示图标、但又确定装成功了的应用adb shell monkey -p 完整包名 1这个monkey命令带包名会让系统帮你启动应用启动后电视屏幕上就会进入应用界面然后你再退出从应用管理或者主页找入口。我个人装某些主页不显示图标的电视应用时经常用这条命令验证应用是否真的能用。最后提一个安全方面的建议ADB调试开关在安装完应用后如果平时用不到记得去电视开发者选项里把它关掉。原因有两个一是开放调试端口对家庭网络安全没有好处二是偶尔会有电视后台更新后把ADB开关重置为开启状态导致你重新开机后ADB连接状态变化需要重新授权每次连接都要重新确认一次授权也没必要。反正需要的时候再打开也就十几秒的事。5. 常见问题速查在实际帮人远程排查的过程中大家问到最多的下面几个问题我把处理结果和结论汇总也放一个表方便以后照着操作。现象常见原因处理方式adb connect提示unable to connectIP地址错误或端口不对重新查IP确认端口5555或电视自定义端口adb devices显示unauthorized电视端授权未确认在电视上开启允许调试授权重新连接连接成功但安装报INSTALL_FAILED_ALREADY_EXISTS应用已安装用adb install -r覆盖安装安装报INSTALL_FAILED_SIGNATURE签名不一致卸载旧包或换同签名版本安装大APK传输失败网络不稳定或包体过大先push后pm install本地安装应用装好但打开闪退应用兼容性或安卓版本问题换电视适配版本或降低版本应用装好但不显示图标系统不在主页展示用monkey命令启动验证或去全部应用里找电视没发现开发者选项系统限制移除入口确认是否开放该功能否则只能换方式需要特别强调的是ADB安装应用的能力在部分电视系统更新后有被削弱的情况这是厂商出于安全策略调整并不代表你操作方法有问题。遇到这种情况可以先等一下系统更新看是否恢复或者找一个旧版本固件的APK试一下。我个人实际用下来的体会是ADB装电视应用这条路学会之后特别省心尤其是遇到电视商店里没有、U盘又装不了的应用时它能一解燃眉之急。虽然命令看起来就那么几条但把连接原理、签名冲突逻辑、网络问题排查思路摸清楚后以后不管换什么品牌的电视都能很快上手而且这套思路在安卓盒子上同样适用算是安卓生态里一项很通用的技能了。
返回列表