V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wasd6267016
V2EX  ›  Android

有什么办法让 adb 命令能从电脑给国产手机装 apk 吗?

  •  
  •   wasd6267016 · 2021-07-01 14:56:38 +08:00 · 14821 次点击
    这是一个创建于 1271 天前的主题,其中的信息可能已经有所发展或是发生改变。

    adb install

    一加可以正常装上

    oppo vivo 华为 小米 都不可以 要么弹出登录界面 要么根本就没响应

    ov 是必不可以 华米有的机型可以 有的不可以

    做了个自动化工具,最后一步却卡在了这里 真的头大

    第 1 条附言  ·  2021-07-01 22:48:31 +08:00
    “adb install 一加可以正常装上”
    这句话的潜台词就是肯定开了开发者模式 开启了调试 信任了电脑 不然所有的 adb install 都装不上
    第 2 条附言  ·  2021-07-01 22:50:58 +08:00
    这个问题结了
    基本无解 系统层面的拦截

    有个可行的思路 自己写个辅助服务 检测到 apk 安装器的包名的 app 启动就自动输入密码
    前提是 1 你这个辅助服务要可以保活 小心后台被杀 2 你得知道这个手机对应的在线账号密码
    这个方案貌似可以 但是最难的是 每个牌子要写一个 每个牌子的新老系统还有可能不同 也要分开写

    别的方法应该都不行
    60 条回复    2021-09-29 13:08:02 +08:00
    ddosupup
        1
    ddosupup  
       2021-07-01 15:02:59 +08:00
    root
    jim9606
        2
    jim9606  
       2021-07-01 15:03:28 +08:00
    小米那个登录账号就可以开 USB 安装啊。
    如果你想绕过这个,你先交代你想干什么坏事?
    kebamt
        3
    kebamt  
       2021-07-01 15:04:22 +08:00 via iPhone
    安装不太清楚,不过可以卸载😁
    有一个软件来着利用爱 adb 命令卸载预装应用
    Chihaya0824
        4
    Chihaya0824  
       2021-07-01 15:07:29 +08:00
    除了阴间 vivo (每次安装都要输 vivo 的密码),小米华为 lg 等等都直接 adb install 完事了(虽然要手动确认),前提是开发者开了 usb 安装
    wasd6267016
        5
    wasd6267016  
    OP
       2021-07-01 15:08:29 +08:00
    @jim9606 大哥 你这审问的
    说了做了个自动化工具 给内部用的
    小米有的可以有的不可以 导致别人用起来不方便 (有人不知道自己没开)
    所以我在问大家的是一个通用方法
    AoEiuV020
        6
    AoEiuV020  
       2021-07-01 15:08:49 +08:00
    魔高一尺道高一丈的就别想了,人家就是故意禁那些自动安装的,有的手机可以取消,有的不可以,
    刚试了下 root 可以绕过 miui 的限制,其他就不能保证了,有需要只能一个一个试过去,
    wasd6267016
        7
    wasd6267016  
    OP
       2021-07-01 15:13:51 +08:00   ❤️ 1
    @Chihaya0824 ov 基本可以确定无解了
    华米的我确认下那个 usb 安装
    怪不得华米有的时候可以 有的时候不可以
    wasd6267016
        8
    wasd6267016  
    OP
       2021-07-01 15:14:34 +08:00
    @AoEiuV020 唉…… 真难 root 自己手机可以 要求别人也为了我这个工具 root 不现实
    unco020511
        9
    unco020511  
       2021-07-01 15:38:02 +08:00
    必须开启允许 USB 安装
    xiqishow
        10
    xiqishow  
       2021-07-01 15:57:50 +08:00
    确实 VIVO OPPO 每次安装都需要输入密码,可以先做一个 app,使用辅助服务,检测弹出是否是安装输入密码的对话框 输入预先设置的密码登录,然后 adb 会直接安装上了,好多云真机的测试平台都是这么做的。
    janus77
        11
    janus77  
       2021-07-01 16:00:47 +08:00
    你不会是没开启开发者模式吧,adb 很容易装的啊
    GoldenLee
        12
    GoldenLee  
       2021-07-01 16:07:05 +08:00
    直接分发 apk 吧,让用户手动安装
    wasd6267016
        13
    wasd6267016  
    OP
       2021-07-01 16:07:57 +08:00
    @xiqishow 我还真的做过 但是实际情况复杂得多…… 每个牌子要做一个 然后有的人测试机自己也不知道密码…… 还有那个辅助服务也总是自动被关掉……
    1235467
        14
    1235467  
       2021-07-01 16:08:35 +08:00
    华为反正我的允许 usb 调试后就可以装
    ctro15547
        15
    ctro15547  
       2021-07-01 16:10:45 +08:00
    开启开发者模式的 ADB 调试, 有些手机会有 adb install 的开关,好像小米就有,留一下开发者选项 开启就好。
    xiqishow
        16
    xiqishow  
       2021-07-01 16:26:05 +08:00
    @wasd6267016 嗯 有的厂家云真机 oppo vivo 也偶尔会不好使
    james2013
        17
    james2013  
       2021-07-01 16:27:58 +08:00
    直接传到 fir 网站或者本机开个文件服务,扫二维码下载安装.
    Android 每个手机都要打开开发者模式和开启 usb 调试,麻烦多了.还不如直接二维码下载安装.
    learningman
        18
    learningman  
       2021-07-01 16:30:00 +08:00   ❤️ 5
    你知道不,有的机场啊火车站那种充电的地方,就非要你开 USB 调试,然后你充个电给你装一大堆 app
    所以国产系统才有这个功能,这其实是个 feature
    wasd6267016
        19
    wasd6267016  
    OP
       2021-07-01 16:31:42 +08:00
    @learningman 嗯 懂安全考量 但是也真的苦了正经开发者
    minsheng
        20
    minsheng  
       2021-07-01 20:09:29 +08:00 via iPhone
    @learningman iPhone 用户不懂提问一下:安卓就没有类似 iPhone 的那种信任此电脑的选项吗?还是说不信任就不给充电?
    mxT52CRuqR6o5
        21
    mxT52CRuqR6o5  
       2021-07-01 20:23:47 +08:00   ❤️ 1
    看到 20 楼也没明白你说的不可以是哪种不可以,你的可以是指不需要 usb 调试信任就能直接 adb install,还是说你 usb 调试信任了之后还是不能 adb install
    honjow
        22
    honjow  
       2021-07-01 20:26:09 +08:00 via iPhone   ❤️ 1
    @wasd6267016 正经开发者不会手动开 adb 手动信任?
    Jirajine
        23
    Jirajine  
       2021-07-01 20:31:11 +08:00 via Android
    @learningman 默认都是仅充电模式吧,难道这些地方不授权 USB 调试不给冲?
    root99527
        24
    root99527  
       2021-07-01 20:32:44 +08:00 via iPhone
    H 家的是需要登录账号并且打开开发者模式允许的
    learningman
        25
    learningman  
       2021-07-01 20:32:46 +08:00 via Android
    @Jirajine 对的
    BrettD
        26
    BrettD  
       2021-07-01 21:12:32 +08:00 via iPhone
    既然都是内部工具,不能让用户自己动手安装吗?
    hshpy
        27
    hshpy  
       2021-07-01 21:12:34 +08:00
    谷歌官方文档写明 Android 11 得先配对,你的有的可以有的不可以应该是系统版本吧。
    必须打开开发者模式,再打开 usb 调试或无线调试。
    wasd6267016
        28
    wasd6267016  
    OP
       2021-07-01 21:43:14 +08:00
    @hshpy 国产系统全都有拦截 尤其是 ov 点开开发者模式、打开 usb 调试 照样无法安装
    wasd6267016
        29
    wasd6267016  
    OP
       2021-07-01 21:48:39 +08:00
    @mxT52CRuqR6o5 开头第一句就是“一加可以安装” 肯定是开了 usb 调试啊 你这么说说明你根本没遇到过这个问题也不会解决这个问题 不必勉强


    @honjow 要不你先别急着讽刺自己试一试再发表高论? 事实情况就是有些国产品牌你打开了 adb 调试模式 手动信任了 也无法直接 adb install
    wasd6267016
        30
    wasd6267016  
    OP
       2021-07-01 21:49:52 +08:00
    @BrettD 对哦 我怎么就不知道让用户自己动手安装呢
    wasd6267016
        31
    wasd6267016  
    OP
       2021-07-01 21:50:53 +08:00
    @hshpy 正统 android 这个步骤应该没问题 一加就很顺畅
    但是国产定制系统就会遇到各种不稳定
    wasd6267016
        32
    wasd6267016  
    OP
       2021-07-01 21:54:24 +08:00
    @kebamt 卸载确实很稳定的可以……
    mxT52CRuqR6o5
        33
    mxT52CRuqR6o5  
       2021-07-01 22:11:19 +08:00 via Android
    @wasd6267016 我手里小米 10 pro 打开 usb 调试&usb 安装&关闭通过 usb 验证应用且信任 usb 调试后可以正常 adb install 安装应用,其他小米不清楚,所以说还是没明白不可以是怎么个不可以
    wasd6267016
        34
    wasd6267016  
    OP
       2021-07-01 22:45:47 +08:00
    @mxT52CRuqR6o5 你不读题谁也没法给你说明白啊 “一加可以正常装上” “华米有的机型可以 有的不可以”
    我认为知道 adb install 之前开调试信任是能回答这个帖子棘手问题的基本前提吧 你还在这没读懂要不要开 usb 调试信任
    不开 usb 调试一加能通过 adb install 装上 apk 吗
    问题就是 你的准备工作做全了 ov 华为这些国产系统还是无法顺畅的通过电脑装上版本
    好 题给你解释明白了 你有对应方案吗 显然没 因为从你第一个回复的搞不懂就可以知道你就没遇到过这种情况
    甚至你还在考虑“不需要 usb 调试信任就能直接 adb install”这个情况就知道
    xFrye
        35
    xFrye  
       2021-07-01 23:02:29 +08:00
    ov 都不行,会弹出弹窗让你填用户密码,这也是我反感用他们做测试机的原因。
    miui 的话,关闭 miui 优化可以直接 adb 安装,不会弹出那个第一次安装确认弹窗
    wasd6267016
        36
    wasd6267016  
    OP
       2021-07-01 23:11:26 +08:00
    @xFrye 感谢 那我可以试试关闭 miui 优化
    xLuoBo
        37
    xLuoBo  
       2021-07-02 01:46:07 +08:00 via iPhone
    @jim9606
    早些年流行刷机的时候,有很多做充电宝,充电头的人找我们先 root 装后门,不能 root 的给装个无图标的服务。你们想想他到底要干嘛
    mxT52CRuqR6o5
        38
    mxT52CRuqR6o5  
       2021-07-02 02:05:22 +08:00 via Android
    @wasd6267016 所以你花时间搁这打了这么多字,也不肯明明白白的解释清楚装不上到底是怎么个装不上(就比如 ov adb install 需要输用户密码,你从头到尾都不肯明说,还是其他用户说的,我也不知道藏着掖着是想干嘛,其他牌子的手机 adb install 之后又是如何如何所以装不上也不清楚),你对这些手机拥有何种程度的控制也从没说过,我就不明白你这啥都不解释是想如何让网友给你解决问题,还是说你根本不想解决问题只是单纯的来抱怨的,你要是并不想解决问题就请一开始就说清楚,搞得我搁着热脸贴冷屁股似的
    而且合着没遇到过一模一样的问题就不能根据已有的知识出主意了?你是已经弄清楚 adb install 的所有问题才开始做这个需求的?还是说没有 100%完整尝试过所有解决方法的人都没资格来回复?
    mxT52CRuqR6o5
        39
    mxT52CRuqR6o5  
       2021-07-02 02:14:05 +08:00 via Android
    我就说几个思路
    厂商自家的手机助手尝试用过吗?像华为手机助手有自家魔改的 adb(hdb),多出一些厂商定制功能

    Shizuku 和 sai 尝试过没有?

    而且就算是输入密码,adb 模拟输入有没有尝试过能不能用?如果能用比辅助服务简单的多吧
    wobuhuicode
        40
    wobuhuicode  
       2021-07-02 07:39:42 +08:00 via iPhone
    小米的需要插 sim 卡和登录账号才能开启……真的挺恶心人的。
    ptmicky
        41
    ptmicky  
       2021-07-02 08:18:09 +08:00
    我记得华为有的机型是用 adb shell bm install -p sdcard ....apk ,有的则是用 bat 文件,里面写
    adb devices
    adb install -r %~1
    把安装包拉到 bat 文件上面才可以
    ptmicky
        42
    ptmicky  
       2021-07-02 08:19:09 +08:00
    @ptmicky 前提是 开发者选项中 usb 调试模式已连接,如果 usb 线有问题,很大程度也影响你安装程序的成功率
    Dragonphy
        43
    Dragonphy  
       2021-07-02 08:53:34 +08:00
    adb uninstall 卸载过小米的内置应用,然后我就用不了 nfc 了,因为依赖小米钱包😅
    zjb861107
        44
    zjb861107  
       2021-07-02 10:10:04 +08:00
    adb push 到手机,然后通过文件管理器安装
    wasd6267016
        45
    wasd6267016  
    OP
       2021-07-02 10:24:53 +08:00
    @zjb861107 可以 但是我也可以给个经验
    adb push 比直接电脑拷贝到手机要慢不少 因为 adb push 是走的貌似是 tcp 协议
    2g 大小的 apk 直接拖拽过去 终端机器 30s 不到 adb push 的话要 2 分钟以上
    wasd6267016
        46
    wasd6267016  
    OP
       2021-07-02 10:29:42 +08:00
    @ptmicky pm install 吧 我也试过了
    1 新版本安卓目录要求很高 必须是 data/tmp 什么什么的那个目录 还要提前告诉大小
    2 最离谱的是折腾了一圈 在 vivo 手机上 运行成功了 结果还是提醒被拦截了
    wasd6267016
        47
    wasd6267016  
    OP
       2021-07-02 10:35:30 +08:00   ❤️ 1
    @mxT52CRuqR6o5 其实你就当成是筛选吧
    这个固有的问题 如果真的有解的人 看个标题就懂问题是什么了
    看不懂标题的人 我费大劲解释也不会有什么答案
    需要我解释 ov 会弹出密码框的,根本就没遇到过这种情况,我觉得大概率给不出什么有效信息 所以更不必冷嘲热讽

    并且事实是 ov 并不一定弹出密码框 我试了 4 个新旧款 vivo 手机 有三种表现 这么复杂的情况还需要一一说出来吗?
    什么叫藏着掖着 还搁这做有罪推定呢
    wasd6267016
        48
    wasd6267016  
    OP
       2021-07-02 10:36:42 +08:00
    @wobuhuicode 对的 项目组的测试机 大概率没 sim 卡 大概率没账号 更大概率 有账号但是密码根本不知道……
    就很尴尬
    mxT52CRuqR6o5
        49
    mxT52CRuqR6o5  
       2021-07-02 10:47:05 +08:00
    @wasd6267016
    ov 你说一下试了 4 款手机有 3 中表现,别人就知道靠模拟操作来 workaround 做起来会麻烦,你不说别人不会明白,不可能去买 4 个 ov 再重复你的实验
    而且筛选回答用户你不觉得自己太傲慢了吗,明明自己做这个需求时也不是把所有事情都搞明白再做的
    wasd6267016
        50
    wasd6267016  
    OP
       2021-07-02 10:58:30 +08:00
    @mxT52CRuqR6o5 真正在实践中遇到过这个问题的人 其实都知道的

    筛选只是觉得没必要给一个没遇到过的人讲一遍 (不亲自遇到讲了也没什么用,沟通成本太高) ,没遇到过的人也不用听一遍

    这是个解决问题的帖子,追求效率而已,不是吹水聊天群
    mxT52CRuqR6o5
        51
    mxT52CRuqR6o5  
       2021-07-02 11:03:26 +08:00
    @wasd6267016
    问题是你这么大个需求未必能找到完整做过这个需求的人
    如果这个问题是有解的情况下,更有可能的是 A 知道解决问题的某个步骤,B 知道另一个步骤,……
    他们都没完整做过你这个需求,但你把他们各自的某一小块经验组合起来就可能获得答案,这种情况难道你觉得不存在吗
    wasd6267016
        52
    wasd6267016  
    OP
       2021-07-02 11:07:08 +08:00
    @mxT52CRuqR6o5 你说的也有道理 只是这个问题更像是一个独立的问题 我知道大概率无统一解了 只是想看看 V2EX 人才那么多 有没有什么 trick
    mxT52CRuqR6o5
        53
    mxT52CRuqR6o5  
       2021-07-02 11:17:34 +08:00
    @wasd6267016
    我之前提出的意见
    官方自家的手机助手是否能静默安装,如果能的话是如何做到的
    调用通过 usb 线进行提权的 shizuku 调用静默安装是否会弹密码
    我不知道你有没有进行试验
    haython
        54
    haython  
       2021-07-02 11:20:22 +08:00
    想问一下, 是出于什么考量,没有选择让用户自己下载安装?
    Lemeng
        55
    Lemeng  
       2021-07-02 12:52:05 +08:00
    小米开权限可以。华为也可以,其他国产没用过
    FlyingShark
        56
    FlyingShark  
       2021-07-02 15:01:52 +08:00
    无解,还是输入密码吧,个人感觉这个确实增强了安全性

    以 OPPO 为例,[安装身份验证]里面的验证频率,只能选每次验证和 15 分钟后再次验证
    Linhuai
        57
    Linhuai  
       2021-07-02 16:51:01 +08:00
    魅族也 OK
    gam2046
        58
    gam2046  
       2021-07-03 06:32:35 +08:00
    尝试通过包管理器安装,用户手动在手机上进行一次确认呢?

    adb push SOURCE /sdcard/1.apk
    adb shell am start -a android.intent.action.VIEW -d file:///sdcard/1.apk -t application/vnd.android.package-archive --activity-clear-task
    LewisW
        59
    LewisW  
       2021-07-05 16:58:09 +08:00
    appium 应该可以做 就是麻烦点
    DzwsGo
        60
    DzwsGo  
       2021-09-29 13:08:02 +08:00
    @jim9606 小米 8 实测无卡的话需要输入密码,而且拦截了 adb shell input text
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2854 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:45 · PVG 22:45 · LAX 06:45 · JFK 09:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.