请教几个 Android 应用方面的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
acbot
V2EX    Android

请教几个 Android 应用方面的问题

  •  1
     
  •   acbot 2022 年 10 月 11 日 12623 次点击
    这是一个创建于 1188 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. Android 的 APP 能不能实现在启动安装的时候必须要输入 APP 的授权码验证后才能继续安装这样的需求呢,类似哪些需要收费的 Windows 软件,在安装的时候需要输入 KEY 验证之后才能继续安装和使用,本地正版验证的这种。
    2. 现在厂家 Android 系统自带的导入证书的功能好像都只是用于 WIFI 认证使用,在非 root 的情况下有没有通用的方法可以将第三方的证书添加到信任 root CA 列表中
    3. 在非 root 情况下有没有通用的方法可以直接修改 hosts 和 3G/4G/5G 也就是数据流量自带的 DNS ,现在实现这种功能的 APP 好像都是通过 VPN 这种间接的模式来处理的感觉太曲折和太别扭。
    第 1 条附言    2022 年 10 月 11 日
    问题 1. 需求源自 由于 APP 是行业专用的 Android 单机软件(不需要联网使用,类似专用 PDA 上的软件), 但是想实现按设备收费功能所以自然的就想到了 Windows 之前的正版 KEY 方式。

    问题 2. 需求源自现在证书费用和的问题(当然有免费的证书,它们的问题就是时间短并且免费证书的类型有限,另外,独立的 APP 也可以用自己的证书验证,但是有的时候需要调用浏览器或者是第三方 APP 这个时候自签证书也就有问题了)所以想自己签发证书

    问题 3. 主要是现在有的 APP 广告太多,运营商 DNS 稳定性和隐私性等问题,想有没有办法在不安装第三方软件的情况下去掉广告或者是修改 dns 而已, 也不打算做个啥产品。
    22 条回复    2022-10-11 21:43:30 +08:00
    kop1989smurf
        1
    kop1989smurf  
       2022 年 10 月 11 日
    1 、安装不行,执行可以。(你看到的任何软件的 CD-KEY ,也都是执行阶段验证的)
    3 ,你这是 DNS 劫持,是木马行为。

    2 楼主没有描述使用场景,不评价。
    yfugibr
        2
    yfugibr  
       2022 年 10 月 11 日 via Android
    1. win 软件也是装完才运行要 key 的啊,我也没见哪个不买不能安装的
    2. 可以添加 root ca ,不知道是不是国产砍了
    3. 不能

    三项加一起你是打算做个付费软件做 Mitm 劫持用户流量吗
    newmlp
        3
    newmlp  
       2022 年 10 月 11 日
    Windows 的安装程序可以自己做,当然能做到没 key 不能装
    Android 安装包都是统一格式,不能自己做,所以你想自定义一些安装逻辑是不行的
    Eiden
        4
    Eiden  
       2022 年 10 月 11 日
    inno setup 打包的 windows 应用可以做到安装阶段需要输入密码, 而且安装包里面的资源也是加密的
    kop1989smurf
        5
    kop1989smurf  
       2022 年 10 月 11 日
    @Eiden #4 这也是执行阶段,所谓的安装也是程序业务的 setup 。
    windows 、Android 并没有系统级的 CD-KEY 。
    acbot
        6
    acbot  
    OP
       2022 年 10 月 11 日
    @yfugibr “...劫持用户流量.." 不是,主要是我混到一起问了所以容易让人有错误的联想! 现在我已经把需求和原因附注了
    acbot
        7
    acbot  
    OP
       2022 年 10 月 11 日
    @yfugibr ”可以添加 root ca ,不知道是不是国产砍了“ 我这边一个老 android 8 的设备 直接没有导入 root ca 只能用来做 wifi 认证, 另外一个 android 版本比较新的设备 倒是有导入 root ca 但是在导入的时候,在自定义证书存放目录选择证书文件的时候根本看不到 ca 证书,我试过几种证书格式都不行
    acbot
        8
    acbot  
    OP
       2022 年 10 月 11 日
    @kop1989smurf 需求和原因我已经附注了
    yfugibr
        9
    yfugibr  
       2022 年 10 月 11 日 via Android
    @acbot 你可以下个 adguard ,试试它的证书能不能用,我也不清楚具体支持啥格式
    有些软件不接受用户添加的 ca 证书,还有些连系统的都不认,只认自己内置的(比如 firefox ),不如用 acme.sh 签一个,可以自动续期,倒也不麻烦

    改 hosts 必须得 root ,效果一般,国内规则大多误杀严重可以试试 adguard 或者 firefox + ublock origin ,各自都有些缺点
    acbot
        10
    acbot  
    OP
       2022 年 10 月 11 日
    @yfugibr "...改 hosts 必须得 root..." 这个方法行不通,那改 4G/5G 数据上网的默认 dns 的方法呢,哪怕是做一个小 app 通过 android API 的方式修改
    yfugibr
        11
    yfugibr  
       2022 年 10 月 11 日 via Android
    @acbot Android 9 开始支持 private dns ,可以设置 dot 地址,比如 dns.pub (国产好像也有些阉割了)
    Kasumi20
        12
    Kasumi20  
       2022 年 10 月 11 日
    没有用过面具吗,看一下人家能产生一个随机包名的 apk 替换自身
    acbot
        13
    acbot  
    OP
       2022 年 10 月 11 日
    @yfugibr “...Android 9 开始支持 private dns...” 那这个 private dns 会覆盖数据方式获取的运营商 DNS 吗,也就算对数据上网也生效吗?
    yfugibr
        14
    yfugibr  
       2022 年 10 月 11 日 via Android
    @acbot 对 wifi 和流量都生效
    acbot
        15
    acbot  
    OP
       2022 年 10 月 11 日
    @yfugibr 谢谢指教!
    unco020511
        16
    unco020511  
       2022 年 10 月 11 日
    1:要运行后自己做相关逻辑
    2:可以,引导用户安装即可
    3:有很多系统可以改 dns,例如小米的私人 DNS 功能
    CharmingCheung
        17
    CharmingCheung  
       2022 年 10 月 11 日
    想做本地鉴权,apk 安装阶段应该实现不了
    真想实现呢,做一个中间过渡的 App (称作 A )做鉴权,和实际的 App (称作 B )。
    A 鉴权成功之后给你把鉴权信息包括机器码之类的识别内容加密成 license 写进 B 的 Apk 然后重新签名,然后交给系统安装器安装 B ,B 启动的时候拿 license 本地解密后和你的机器信息校验。
    CharmingCheung
        18
    CharmingCheung  
       2022 年 10 月 11 日
    @CharmingCheung #17 因为跟 Windows 不一样,Windows 里软件安装器也是一个 exe ,装好了的软件也是 exe 。真要实现类似的概念,就只能通过一个 App 去安装另一个 App
    xuelu520
        19
    xuelu520  
       2022 年 10 月 11 日
    第一个一般是执行阶段来验证吧。就算不联网,有个死办法,打包的时候,验证码激活码什么的都写进去。
    besto
        20
    besto  
       2022 年 10 月 11 日
    @Kasumi20 小伙子,说出你的故事
    yanqiyu
        21
    yanqiyu  
       2022 年 10 月 11 日
    > 在非 root 的情况下有没有通用的方法可以直接修改 hosts 和 3G/4G/5G 也就是数据流量自带的 DNS ,现在实现这种功能的 APP 好像都是通过 VPN 这种间接的模式来处理的感觉太曲折和太别扭。

    可以自己配置 DoT 服务器
    acbot
        22
    acbot  
    OP
       2022 年 10 月 11 日
    @yanqiyu 这种应该是新版本的系统才有的功能吧!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     989 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 18:37 PVG 02:37 LAX 10:37 JFK 13:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86