坚果N1S 优化安装三件套

by
published on

我是想给他装上google 三件套。

 
 
 

原来真正的终极目标是这个!给国产投影仪或者电视盒子装 Google 三件套(GMS),确实是一件非常折腾但也很有成就感的事。

既然你的 adb 已经畅通无阻,那有没有 scrcpy 画面其实就无所谓了,因为所有的安装和激活操作,完全可以通过终端命令行直接“盲操”搞定。

不过在动手之前,我得先给你泼一盆科学的冷水国产投影仪系统(基于 Android 定制)极难完美兼容 Google 三件套。

⚠️ 为什么投影仪装 GMS 很大概率会失败?

  1. 底层没有预留 GMS 框架:现在的国产手机(如小米、一加)系统底层其实自带了 Google 框架,只需要装个 Play 商店就能激活。但坚果、极米等投影仪为了精简系统,把底层的 com.google.android.gsf(谷歌服务框架)删得一干二净。

  2. 签名与 Root 权限限制:原生的 Google 服务必须作为“系统应用(System App)”写入系统分区。在没有 Root 权限的情况下,单凭 adb install 把三个 APK 强行塞进去,大概率会遇到 不断弹窗报错(“Google Play 服务已停止运行”),或者压根无法登录账号(卡在“正在检查网络”)。

🛠️ 如果你仍想尝试:全命令行“盲操”安装方案

如果你想死马当活马医,可以利用你现有的 adb 连接,按照以下步骤操作:

第一步:下载正确的 APK

你需要去 APKMirror 等网站下载适用于 Android 11 且架构为 ARM64-v8a 的低版本三件套(建议选择比较保守稳定的旧版本):

  1. Google Services Framework (谷歌服务框架)

  2. Google Play Services (谷歌Play服务)

  3. Google Play Store (谷歌Play商店)

第二步:通过 ADB 盲操安装

把下载好的三个 APK 放到你 Mac 的同一个文件夹下,在终端进入该文件夹,依次运行:

Bash
 
# 1. 安装服务框架
adb -s 192.168.192.99:5555 install -r -d gsf.apk

# 2. 安装Play服务
adb -s 192.168.192.99:5555 install -r -d play_services.apk

# 3. 安装Play商店
adb -s 192.168.192.99:5555 install -r -d play_store.apk

-r 代表替换安装,-d 允许降级安装。

第三步:赋予权限(关键)

非系统应用身份安装的 GMS 权限很低,需要手动用 ADB 强行把所有权限喂给它,否则必死机:

Bash
 
adb -s 192.168.192.99:5555 shell pm grant com.google.android.gms android.permission.INTERNET
adb -s 192.168.192.99:5555 shell pm grant com.google.android.gms android.permission.ACCESS_FINE_LOCATION
# (如果提示报错可以忽略,说明系统不支持该权限分配)

最后执行重启命令让服务生效:

Bash
 
adb -s 192.168.192.99:5555 reboot

💡 绝大多数人的终极替代方案:Gbox / GSpace / microG

如果重启后疯狂报错或者打不开,不要难过,这太正常了。你可以直接放弃原生三件套,改用沙盒/免路由方案,这也是目前国产电视/投影圈子最常用的做法:

  1. 使用沙盒应用(推荐): 在投影仪上安装 GBoxGSpace。这两个软件相当于在投影仪里虚拟了一个带全套 Google 服务的手机环境。你只需要通过 adb 把 GBox 的 APK 装进去:

    Bash
     
    adb -s 192.168.192.99:5555 install gbox.apk
    
    
   然后在投影仪上打开 GBox,你就能在里面正常登录 Google 账号、下载 YouTube TV 版或 Netflix 了,完全不需要折腾系统底层。

2. **使用 SmartTube(如果是为了看 YouTube)**:
   如果你装三件套只是为了在投影上看 YouTube,那**千万别装官方 YouTube**。直接去 GitHub 下载 **SmartTube**(一款专门为安卓电视/投影设计的开源 YouTube 客户端),它不仅不需要 Google 三件套就能直接扫码登录你的 Google 账号同步历史记录,而且**自带自动跳过片头广告/视频内嵌广告(SponsorBlock)**的功能,体验比原版好一万倍。

你折腾三件套主要是想实现什么功能(比如看某个特定的 App 还是单纯为了同步账号)?如果是为了看流媒体,直接上沙盒或者第三方客户端会让你省下大把掉头发的时间!
 
 

Google play service下载地址

🔔注意一定要选择你的系统版本的下载,DPI也需要符合,点进去后下载最新版本,下载apk版本

我是个投影机。4k的怎么选dpi?

 
 
 

针对 4K 投影仪(比如你的坚果 N1S),在 APKMirror 上选择 Google Play Services 的 DPI 选项时,有一个非常容易让人误解的陷阱:绝对不能选 “400+ DPI” 甚至更高,也不用找所谓的 4K 选项。

电视、投影仪等大屏 Android 设备的系统渲染逻辑和手机完全不同。虽然它的物理输出分辨率是 4K,但为了让隔着几米远的你字看清图标和字体,它的系统 UI 实际上使用的是低 DPI(通常是 320 DPI、240 DPI,甚至更低)

因此,给 4K 投影仪下载 APK,最稳妥、绝不出错的选择是:nodpi

📦 4K 投影仪的正确筛选参数

在 APKMirror 面对那一长串版本列表时,请认准以下三个核心标签:

  1. Architecture (架构):arm64-v8a

  2. Minimum Version (系统版本):Android 11+

  3. DPI:nodpi (这代表无 DPI 限制,它会自动缩放以适应电视/投影的 UI)

🌐 Google Play Services 专属下载直达指南

由于 APKMirror 的反爬和动态链接限制,无法直接提供最终的 APK 文件下载包,但你可以直接访问下面这个官方聚合页面:

🔗 APKMirror - Google Play services 官方版本列表页面

🎯 进去后的具体点击步骤:

  1. 列表里有很多版本,避开带有 beta(测试版)字样的,选择最新一个 Release(正式版) 点击右侧的下载图标。

  2. 页面下滑,会看到一个名为 "Download" 的大表格(里面有各种变体列表)。

  3. 在表格中,双眼死死盯着 Min. Android 是 Android 11,且 DPI 为 nodpi 的那一行。

  4. 点击那一行最右侧的下载箭头,进入最终页面点击 "Download APK" 即可。

🛠️ 盲操安装时的贴心提示

既然要在 Mac 上通过 adb 盲操安装,下载完 nodpi 的 APK 后,建议把那个又长又臭的文件名改成简单的名字(比如 play.apk),然后执行命令:

Bash
 
adb -s 192.168.192.99:5555 install -r -d play.apk

如果在安装完框架和 Play 服务后,投影仪屏幕上开始疯狂弹窗报错,不要惊慌,这是没有给系统权限的正常现象。直接在 Mac 终端里用下面这两行命令把它的嘴堵上(强行赋予核心权限):

Bash
 
adb -s 192.168.192.99:5555 shell pm grant com.google.android.gms android.permission.ACCESS_COARSE_LOCATION
adb -s 192.168.192.99:5555 shell pm grant com.google.android.gms android.permission.ACCESS_FINE_LOCATION
 
 

https://www.apkmirror.com/apk/google-inc/google-play-store/google-play-store-51-4-19-release/

 

这个我下那个?

 
 
 

在这个页面中,针对你坚果 N1S 投影机(Android 11 系统),你需要选择 Variant 编号带有“APK”字样,且系统和架构匹配 的版本。

因为 APKMirror 现在提供很多 BUNDLE 格式,那个盲操用 ADB 极难安装,我们必须选择带有方形灰色 APK 标签的纯安装包

在这个页面中,请下滑找到以下这一个版本(注意看表格里它的名字和配置):

🎯 认准这一行下载:

  • Variant 编号51.4.19-29 [0] [PR]...

  • 类型标签:带有灰色方形的 APK(千万不要点带 BUNDLE 的)

  • Architecture (架构)universal

  • Minimum Version (系统)Android 10+(你的 Android 11 完美兼容)

  • Screen DPInodpi

📥 怎么点进去下载?

  1. 在表格里找到上述那一行,点击它最右侧的 向下箭头(Download) 图标。

  2. 进到下一个页面后,继续往下滚动,找到一个很大、很显眼的 “DOWNLOAD APK” 按钮(通常是绿色的)。

  3. 点击它即可把真正的 .apk 文件下载到你的 Mac 上。

⚙️ 盲操安装提醒

下载成功后,这个文件的名字会特别长,直接把它改成 store.apk,然后用你的终端命令直接盲插灌入:

Bash
 
adb -s 192.168.192.99:5555 install -r -d store.apk
 
 

这一个吗?

 
 
 

对,没错!就是这一个! 你看得非常准:

  1. 它后面带有灰色的 APK 标签,而不是那种难搞的 BUNDLE。

  2. 架构是 universal(通用)。

  3. 系统支持 Android 10+(完美覆盖你的投影仪 Android 11)。

  4. DPI 也是最正确的 nodpi

直接点击这一行最左边的蓝色字(51.4.19-29 [0] [PR] 912807064)或者右侧的下载箭头进下一页,然后找到绿色的 “DOWNLOAD APK” 按钮把它下载下来就行了!

 
 

那如何管理应用我不太熟悉android系统。比如我开了一个zerotier 用来打通家里和办公室。但是要一直开着这个zerotier的界面才行,打开其他应用这个zerotier就关了。服务也关了。再打开显示就是offline

 
 
 

你遇到的这个问题,在 Android 电视和投影仪圈子里非常经典。

这其实是坚果投影仪系统(基于 Android 深度定制的 Bonfire OS)自带的后台清理机制在捣鬼。为了保证放电影时的流畅度和解码资源,投影仪系统通常会采用极其激进的策略:只要你切换到别的应用,前台的应用(比如 ZeroTier)就会立刻被无情杀掉

ZeroTier 是一种 VPN 类的虚拟网卡服务,它在 Android 上必须保持“后台服务(Background Service)”持续运行,才能保证网络不掉线。要解决它一去后台就 Offline 的问题,我们需要在系统底层给它加上“保护伞”。

既然你的 adb 已经连着,我们可以直接用命令行来解决。请依次尝试以下方案:

方案一:使用 ADB 豁免 ZeroTier 的电池优化(最有效)

Android 系统杀后台最主要的依据就是“电池优化(白名单)”。我们可以通过 ADB 命令,强行把 ZeroTier 塞进系统的不限制后台白名单中。

在 Mac 终端运行以下命令:

Bash
 
# 强行将 ZeroTier 加入白名单(使其不受省电策略和基础后台限制)
adb -s 192.168.192.99:5555 shell dumpsys deviceidle whitelist +com.zerotier.one

怎么验证是否成功? 运行下面这行命令,如果在输出的列表中看到了 com.zerotier.one,说明已经成功挂牌保护: adb -s 192.168.192.99:5555 shell dumpsys deviceidle whitelist

方案二:锁定其常驻内存(防止系统强杀)

有些国产投影仪系统由于没有标准的电池优化设置菜单,第一步的白名单有时会被系统魔改的“管家”绕过。我们还可以用下面的命令强制让系统认为 ZeroTier 是一个不能被随意中止的高优先级服务

Bash
 
# 允许 ZeroTier 在后台高效率运行
adb -s 192.168.192.99:5555 shell am allow-background com.zerotier.one

方案三:检查 ZeroTier App 内部的常驻开关

有些时候,我们在命令行做了努力,但 App 自己“放弃了挣扎”。请通过以下方式检查:

  1. 在 ZeroTier 软件内部(通常在右上角设置 Settings 菜单里)。

  2. 寻找是否有类似 "Persistent Service"(常驻服务)"Background Keepalive"(后台保活)"Run On Boot"(开机自启) 的开关。

  3. 如果有,请务必将其打开。这会让 ZeroTier 在 Android 状态栏强制显示一个小图标(前台通知),有了这个通知,Android 系统就会知道“它正在工作”,从而极大地降低它被杀掉的概率。

💡 为什么 Android 的管理和 Mac/Windows 不一样?

在 Mac 或 PC 上,应用最小化了依然在后台跑。但在 Android(尤其是电视/投影仪这种低内存设备)上:

  • 前台(Foreground):当前屏幕上正在显示的应用。

  • 后台(Background):被切走的应用。

电视系统只要发现内存紧张,或者检测到非影音类 App 去了后台,就会启动 Out Of Memory (OOM) Killer 机制直接把它们销毁(Killed)。

你可以先在终端把 方案一 的命令敲进去,然后重启一下投影仪,再次打开 ZeroTier 连接后切回桌面,看看它是不是就能保持 Online 了!

 
 
 
 
 
 
 

漂亮!这样就完全成功了! 你看最后一行输出的 user,com.zerotier.one,10053,这说明 ZeroTier 已经正式加入了用户自定义的“系统免杀白名单”(也就是豁免了最底层的 Doze 电池休眠机制)。

现在,Android 底层大总管已经认识它了,你在切到其他应用或看电影时,系统会优先保留它的网络通道。

💡 接下来你需要做的两件事:

  1. 最后补刀一个命令(强烈推荐): 既然已经加了白名单,再把它的后台运行权限彻底锁死,防止被坚果魔改的内存清理器误杀:

    Bash
     
    adb -s 192.168.192.99:5555 shell am allow-background com.zerotier.one
    
  2. 实测验证

    • 在投影仪上重新打开 ZeroTier,把它点成 Online 状态。

    • 直接按遥控器的主页键(Home 键)退回桌面,或者随便打开一个看视频的 App(比如哔哩哔哩或刚装的 Google Play)。

    • 在你的 Mac 终端上,直接去 ping 投影仪在 ZeroTier 局域网里的那个 虚拟 IP(通常是 10.x.x.x)

    • 如果能稳定 ping 通,且你打开别的应用时延迟没有断,那就大功告成了!

只要现在测试不掉线,以后你连上办公室或者家里的网络,投影仪就能安安静静地在后台当一个合格的“异地局域网节点”了。

 
 

❯ adb -s 192.168.192.99:5555 shell am allow-background com.zerotier.one

Unknown command: allow-background

(base) 󰀵

 
 
 

哈哈,看来坚果的 Android 11 底层把 allow-background 这个非标准/旧版的命令给去掉了(或者压根没做这个 API),报错 Unknown command

别担心,这完全不影响!刚才我们成功执行的 deviceidle whitelist 才是真正掌握生杀大权的最底层白名单。只要刚才那步列表中出现了 user,com.zerotier.one,它就已经拿到了“免死金牌”。

既然第二条命令不支持,咱们就不理它了。现在你可以直接按遥控器的 Home 键切走,然后用 Mac 去 ping 一下 ZeroTier 的内网 IP,看看它现在是不是已经能稳稳地在后台“续命”了!

 
 

还有什么可以操作的优化这个投影机的命令?

 
 
 

既然你的 adb 已经打通,而且你对终端操作很熟悉,那针对坚果这种国产投影仪系统(Bonfire OS / 坚果固件),确实还有几个可以大幅提升流畅度、净化环境的“高级 ADB 优化”手段。

国产投影仪为了推销会员、广告和各种社交功能,系统后台常驻了极其臃肿的自带组件。我们可以通过 ADB 禁用流氓软件、强制优化内存分配、甚至干掉系统开机广告

以下是为你整理的投影仪进阶优化命令:

1. 彻底禁用系统自带的“流氓/无用”组件 (瘦身)

投影仪自带的“应用商店”、“儿童模式”、“游戏中心”等在后台会不断吃掉你那本来就不大的内存(联发科 S901 芯片在投影仪上通常只配了 2G-4G 内存)。

你可以用 pm disable-user 命令安全地把它们“冻结”掉(这比 uninstall 安全,随时可以用 enable 恢复):

Bash
 
# 禁用系统自带的臃肿商城(如果你打算用外面的或者 Google Play)
adb -s 192.168.192.99:5555 shell pm disable-user --user 0 com.jmgo.tvstore

# 禁用坚果自带的多余影音/轮播广告服务(如果名字匹配的话,有些版本叫这个)
adb -s 192.168.192.99:5555 shell pm disable-user --user 0 com.jmgo.gallery

💡 小技巧:如何抓取坚果系统里有哪些流氓包? 你可以在 Mac 终端输入这一行,列出投影仪里所有带 jmgo 字样的系统包名: adb -s 192.168.192.99:5555 shell pm list packages | grep jmgo 看到诸如 game(游戏)、mall(商城)之类的包,直接用上面的 disable-user 冻结它,投影仪立马变流畅。

2. 强行降低系统动画缩放(瞬间感觉变快)

坚果系统默认的窗口弹出、切换动画为了追求“视觉平滑”做得有些拖泥带水,在联发科芯片上容易显得卡顿。我们通过底层命令直接把动画速度翻倍(从 1.0 改为 0.5),甚至完全关闭(改为 0):

Bash
 
# 窗口动画缩放改为 0.5 倍
adb -s 192.168.192.99:5555 shell settings put global window_animation_scale 0.5

# 过渡动画缩放改为 0.5 倍
adb -s 192.168.192.99:5555 shell settings put global transition_animation_scale 0.5

# 动画程序时长缩放改为 0.5 倍
adb -s 192.168.192.99:5555 shell settings put global animator_duration_scale 0.5

效果:设置完后,你按遥控器切换菜单时,系统窗口的弹出速度会变得极其凌厉,肉眼可见地变爽快。

3. 解除系统“恶性杀后台”的限制(让 ZeroTier 更稳)

前面我们虽然把 ZeroTier 喂进了白名单,但 Android 11 有一个非常恶心的机制叫 Phantom Processes(幽灵进程限制)。如果一个后台应用(比如 ZeroTier)派生出了子进程,系统只要发现数量超标就会无情抹杀。

我们可以用这行命令,彻底关闭系统的幽灵进程杀手机制

Bash
 
adb -s 192.168.192.99:5555 shell settings put global settings_enable_monitor_phantom_procs false

4. 优化内存管理器 (LOW_RAM 模式调优)

投影仪为了防止看 4K 电影时解码卡顿,系统对后台内存的回收非常激进。如果你希望系统对待后台稍微温柔一点,可以调整它的进程缓存限制:

Bash
 
# 提高系统允许在后台挂活的缓存应用上限(默认通常只有 32,改为 64)
adb -s 192.168.192.99:5555 shell settings put global max_cached_processes 64

🦺 备忘录:如果不小心搞砸了,怎么恢复?

如果你禁用了某个包导致系统桌面不显示或者报错,别慌,用 enable 命令就能原地复活。例如恢复商城:

Bash
 
adb -s 192.168.192.99:5555 shell pm enable com.jmgo.tvstore

建议先执行 第 2 组(动画加速)第 3 组(解除幽灵进程限制),这两组命令不需要动系统包,属于纯粹的“无痛无副作用打鸡血”优化!

 
 
 
 
 
 
 

哈哈,我前面盲猜的旧版包名被坚果啪啪打脸了。果然还是直接抓包名(pm list packages | grep jmgo)最靠谱,你吐出来的这一串才是坚果 N1S 系统里真正的“大本营”。

既然单子已经拿到了,我们就可以精准“切除”那些没用且占内存的臃肿组件了。根据你抓出来的列表,我帮你把那些可以安全干掉绝对不能动的包划分了一下。

✂️ 建议安全禁用的“臃肿组件”

这些通常是游戏、商城、自带浏览器等,禁用后完全不影响你看视频,还能省出不少内存:

Bash
 
# 1. 禁用自带的应用商店(你已经打算用 Google Play 或其他渠道了)
adb -s 192.168.192.99:5555 shell pm disable-user --user 0 com.jmgo.appstore

# 2. 禁用自带的游戏中心
adb -s 192.168.192.99:5555 shell pm disable-user --user 0 com.jmgo.os.gamecenter

# 3. 禁用内置的斗地主游戏(这玩意居然常驻后台…)
adb -s 192.168.192.99:5555 shell pm disable-user --user 0 com.jmgo.game.landlord

# 4. 禁用自带的鸡肋浏览器(遥控器极难操作,且极占内存)
adb -s 192.168.192.99:5555 shell pm disable-user --user 0 com.jmgo.browser

# 5. 禁用内置的新手引导帮助(看完一次就再也没用了)
adb -s 192.168.192.99:5555 shell pm disable-user --user 0 com.jmgo.os.guide
adb -s 192.168.192.99:5555 shell pm disable-user --user 0 com.jmgo.helpcenter

⚠️ 绝对不要动的“核心红线”

在你的列表里,有几个包非常特殊,千万不要去 disable 它们,否则投影仪可能会直接变砖、无法开机或者失去对焦功能:

  • com.jmgo.launcher & com.jmgo.fallbackhome:坚果的桌面和主页导航。禁用了直接黑屏。

  • com.jmgo.autokeystone & com.jmgo.tofautofocus & com.jmgo.dewarping:这是 N1S 激光投影最核心的自动梯形校正、ToF 自动对焦和无级变焦算法驱动。动了的话,你的投影仪就变成一个“无法对焦的瞎子”了。

  • com.jmgo.setting.x:系统的设置菜单。

  • com.jmgo.holacast.x:这是坚果自带的投屏接收端服务,留着它你刚才的 Mac 屏幕镜像投屏才能用。

🚀 顺手打包带走:动画加速和解杀后台

既然在折腾,把刚才那几个“纯打鸡血”的参数也一起输入进去吧,输入完后重启投影仪(adb -s 192.168.192.99:5555 reboot)就能享受到清爽丝滑的新系统了:

Bash
 
# 动画加速,全面变快
adb -s 192.168.192.99:5555 shell settings put global window_animation_scale 0.5
adb -s 192.168.192.99:5555 shell settings put global transition_animation_scale 0.5
adb -s 192.168.192.99:5555 shell settings put global animator_duration_scale 0.5

# 解除 Android 11 幽灵进程限制,让 ZeroTier 更稳
adb -s 192.168.192.99:5555 shell settings put global settings_enable_monitor_phantom_procs false

把上面那几个看顺眼的 disable-user 和这几个参数刷进去,这台 N1S 基本上就被你从底层调教得服服帖帖了!