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

如何在 Android ROM 中禁止安装 APP?然后让所有刷了这个 ROM 的系统都无法安装 APP?

  •  
  •   dozer47528 · 2017-02-12 11:28:17 +08:00 · 17253 次点击
    这是一个创建于 2844 天前的主题,其中的信息可能已经有所发展或是发生改变。
    其实,我真正想知道的是,我的车载系统是一个被阉割过的 Anoroid ,它不允许装 APP 。
    但是论坛里有人试验了一下,直接把 APP 放刷机包里再刷机,竟然是可以运行的。
    所以,有人知道怎么去掉这个限制吗?这样我的车载系统就可以直接装 APP 了,而不用刷机了。

    帖子在这里:
    http://club.autohome.com.cn/bbs/thread-c-859-60328815-1.html
    第 1 条附言  ·  2017-02-13 15:38:26 +08:00
    补充一下, PackageInstaller.apk 是有的,下载下来的 apk 也是可以安装的。
    但是安装的最后一步,总是弹出:安装未成功
    16 条回复    2017-02-27 16:03:04 +08:00
    a302800411
        1
    a302800411  
       2017-02-12 11:37:50 +08:00 via iPhone
    这都是定制系统,不允许安装 app 这个选项是写在系统源码的配置文件里的。除非有什么漏洞或者后门,否则是没有办法安装的。
    dozer47528
        2
    dozer47528  
    OP
       2017-02-12 11:42:19 +08:00
    @a302800411
    有道理,可能用的不是通用的解决方案。
    看它没有防范的很严格,或许配置就是个文本文件,我全文搜索看看。
    771456556
        3
    771456556  
       2017-02-12 12:13:55 +08:00 via Android
    @dozer47528 既然能修改刷机包,可以尝试一下直接把它 root 了,然后通过 root 权限安装软件,不过汽车这个东西建议你还是不要乱动,弄个安卓手机导航算了呗
    dozer47528
        4
    dozer47528  
    OP
       2017-02-12 12:21:12 +08:00
    @771456556
    root 什么的不是很懂,没研究过 android ,回头上班了找公司里的同事看看。

    网友已经实现改包装上高德导航了,其实已经很满足了,只是每次更新 app 有点麻烦而已。
    dphdjy
        5
    dphdjy  
       2017-02-12 12:58:09 +08:00   ❤️ 1
    lz 知道 “软件包安装程序“ 已停止运行 这个 bug 吗~

    比起改源码,直接把这个 APP 删了,即安装不了应用,又不会和其他部分冲突。

    用 adb 就可以安装进去了,或者有权限移动到 app 目录,重启会 ”正在更新应用程序(0/1)“。

    刷机也是直接刷到 app 目录,启动自行引导。

    不过也可能其他问题~
    ShunYea
        6
    ShunYea  
       2017-02-12 13:01:10 +08:00   ❤️ 2
    以前做 ROM 的时候我记得,安装 APK 是靠另一个 APK 来实现的,随便翻看了我以前的 stuff ,华为 C8816 的 system/app 里的 PackageInstaller.apk 就是负责 APK 安装的 APK ,把这个删了应该就无法安装任何 APK 了。印象中记得 360 手机管家好像还自带了类似的程序来接管和代替系统自带的这个 PackageInstaller.apk ,也就是说原系统的找不到你可以找第三方的 PackageInstaller.apk 。
    其他机型的不一定是这个名字 PackageInstaller.apk ,你自己推敲。
    ShunYea
        7
    ShunYea  
       2017-02-12 13:02:44 +08:00   ❤️ 1
    直接把 APP 放刷机包里再刷机,竟然是可以运行的。

    也就是做 ROM 时候直接集成到 system/app 里,相当于一次性安装好了。所以肯定能运行,所以应该再次证明这个 ROM 只是删掉了 PackageInstaller.apk ,个人猜测。
    freestyle
        8
    freestyle  
       2017-02-12 13:19:41 +08:00 via iPhone
    既然能刷机肯定能 root 把 apk 扔进 /system/app 下,然后解压 apk 里的*.so 文件放到 /system/lib 下,这样就可以手动安装到系统 刷增量包只是把这个过程打包成刷机脚本
    dozer47528
        9
    dozer47528  
    OP
       2017-02-12 15:06:08 +08:00
    @ShunYea PackageInstaller.apk 还在的,我继续看看还有哪动了手脚
    springz
        10
    springz  
       2017-02-12 15:41:18 +08:00
    adb 连上直接 install 应该是可以的吧
    springz
        11
    springz  
       2017-02-12 15:42:12 +08:00
    adb 用不了的话拆开看看,肯定有串口直接连上电脑就是 root 用户
    Jasmine2016
        12
    Jasmine2016  
       2017-02-13 15:15:59 +08:00
    一开始我想的是「未知源」这个开关。
    dozer47528
        13
    dozer47528  
    OP
       2017-02-13 15:39:10 +08:00
    @Jasmine2016 这个开关可以打开,能安装,但是到了最后显示:安装未成功
    k332159915
        14
    k332159915  
       2017-02-27 15:31:21 +08:00
    @dozer47528 应该跟我这个问题是一样的 https://www.v2ex.com/t/343446 系统对应用签名有限制。
    dozer47528
        15
    dozer47528  
    OP
       2017-02-27 15:51:36 +08:00
    @k332159915 如果是这个问题的话,为什么直接放在刷机包的 /data/app 目录下,是可以正常使用的?
    k332159915
        16
    k332159915  
       2017-02-27 16:03:04 +08:00
    @dozer47528 正常情况下安卓系统的安装机制应该是通过 PackageInstaller.apk 处理 apk 包并检验签名文件,这个步骤有助于检查本机是否有相同包名或者相同签名的文件(我猜的),然后这个机器固件应该有签名白名单之类的设定,只能指定签名文件才能通过 PackageInstaller.apk 的检测,所以签名不符合是通过不了的,到最后都会提示应用未安装。复制大法是直接将应用 cp 到 /app 目录下,这一步就跳过了 PackageInstaller.apk 这个检测环节,当然是可以成功的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3368 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 11:28 · PVG 19:28 · LAX 03:28 · JFK 06:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.