斐讯 R1 音箱

斐讯 R1 音箱

配置

  • 哈曼原装单元(与哈曼旗下的Infinity燕飞利仕合作): 1个1.25英寸的丝膜软球顶高音喇叭(4欧姆) + 1个2.75英寸的全频低音喇叭(稀土磁铁), 1个导音锥+2个被动辐射器。音响输出功率15W,频响70Hz-20kHz,信噪比>=85dB。腔体容积 530CC
  • AKM7755专业音频DSP, 德州仪器TPA3118车规级功放
  • 顶部4个麦克风
  • 2.4G+5G双频 802.11ac
  • 蓝牙4.2+EDR
  • RK3229 Quad-core Cortex-A7 (电视盒用的cpu)
  • 512MB ram + 8GB rom
  • Android 5.1 (API level 22)
  • 标配 17V/3A 5.5×2.1mm DC电源适配器。(根据拆机R1的电源降压IC输入耐压23V,输出电流3.5A,工作频率340KHz。)
  • 设备名: Phicomm_R1

售价

  • 发售时官方售价: 2499 ("零元购")
  • 拼多多价: 60 (非全新) (2020-10)

adb

adb kill-server
adb start-server
adb connect 192.168.1.10
adb shell settings put secure install_non_market_apps 1
adb shell settings get secure install_non_market_apps

可以使用adb “投屏工具”在 PC 上显示 R1 的屏幕以模拟操作。

配网 / (伪)绑定

将R1顶部按钮长按,进入配网状态,此时R1的无线网卡会进入AP模式,主动发射一个 SSID 为 "Phicomm_R1_XXXX" 的 WiFi 信号 (XXXX 为此 R1 无线网卡MAC 地址后四位)。此 WiFi 里 R1 自身的 IP 是 192.168.43.1。连接这个 WiFi,然后向R1的下面地址发送 http 请求 (POST)提供 WiFi 信息以实现配网:

curl 'http://192.168.43.1:8989/api/configwifi' --data-raw '{"ssid":"MyWiFi","secure":"WPA","password":"12345678"}'

官方提供的配网步骤是通过手机上的斐讯AI App 实现的。

斐讯固件内置app默认连接服务器 http://aios-home.hivoice.cn:19999/getUserInfo 以检查注册登录状态(貌似只需要检查1次成功即可,之后不会继续检查?)。该地址已绑定时正常返回 json {"status":"0"}。如果未绑定傻逼R1音箱出厂固件会不时语音播放“音箱未绑定”提示,并且无法使用“小讯小讯”语音助手(呼出时会提示请先绑定App)

R1的语音助手服务使用的是云知声 AIOS@Home 智能家居AI标准解决方案,全程连接的都是 AIOS@Home的服务器?

adb 配网

首次使用需要焊接 usb 有线连接 adb; 需要 root

设备上网络配置文件(需要root权限访问): /data/misc/wifi/wpa_supplicant.conf

disable_scan_offload=1
driver_param=use_p2p_group_interface=1p2p_device=1
update_config=1
device_name=rk322x_echo
manufacturer=phicomm
model_name=rk322x-box
model_number=rk322x-box
serial_number=CBEAU1213K00957
device_type=10-0050F204-5
config_methods=physical_display virtual_push_button
p2p_no_go_freq=5170-5740
external_sim=1
wowlan_triggers=any
p2p_search_delay=0

network={
    ssid="MyWiFi"
    psk="12345678"
    group=CCMP TKIP
    auth_alg=OPEN
    priority=67
}

wpa_supplicant.conf 是 Android 标准的 WiFi 配置文件。其中 network 可以提供多个。priority 最低0,越小优先级越高。

adb 直接配网 (需要 root, 而 root 通常需要先配网更新Magisk, 所以此步骤一般只适合修改网络配置)

adb push wpa_supplicant.conf /data/local/tmp/
adb shell "su -c 'cp /data/local/tmp/wpa_supplicant.conf /data/misc/wifi/wpa_supplicant.conf'"
adb shell "su -c 'cat /data/misc/wifi/wpa_supplicant.conf'"

系统精简 (禁用斐讯全家桶)

禁用斐讯全家桶,常开蓝牙。没有氛围灯。

已 root 设备

推荐使用 小黑盒 (eb1n.stopapp),可以冻结 / 解冻任何系统 App。需要配合 adb 投屏。

注:同类 app 的 IceBox 安装后无法正常使用,应该是因为 IceBox 的应用窗口不是标准的 Activity,adb 投屏对其支持不好。

彻底删除方法(root)

不推荐,恢复麻烦。

挂载 /system 分区,把斐讯的软件都干掉

adb shell su

mount -o remount,rw /system
mkdir /system/app-disabled
mv /system/app/* /system/app-disabled/
reboot

无 root 设备

无需 root。

This works because applications truly aren’t being fully uninstalled from the device, they are just being uninstalled for the current user (user 0 is the default/main user of the phone).

adb shell /system/bin/pm hide com.phicomm.speaker.airskill
adb shell /system/bin/pm hide com.phicomm.speaker.player
adb shell /system/bin/pm hide com.phicomm.speaker.exceptionreporter
adb shell /system/bin/pm hide com.phicomm.speaker.ijetty
adb shell /system/bin/pm hide com.android.keychain
adb shell /system/bin/pm hide com.phicomm.speaker.netctl
adb shell /system/bin/pm hide com.phicomm.speaker.otaservice
adb shell /system/bin/pm hide com.phicomm.speaker.systemtool
adb shell /system/bin/pm hide com.phicomm.speaker.device
adb shell /system/bin/pm hide com.android.providers.downloads
adb shell /system/bin/pm hide com.android.location.fused
adb shell /system/bin/pm hide com.android.inputdevices
adb shell /system/bin/pm hide com.android.server.telecom
adb shell /system/bin/pm hide com.android.providers.telephony
adb shell /system/bin/pm hide com.android.vpndialogs
adb shell /system/bin/pm hide com.phicomm.speaker.productiontest
adb shell /system/bin/pm hide com.phicomm.speaker.bugreport

如需恢复把上面命令里 hide 替换为 unhide。(部分系统 app unhide 后需要重启设备生效)

注:另一种方式 adb shell /system/bin/pm uninstall --user 0 com.phicomm.speaker.device 不推荐,想要恢复只能恢复出厂设置。(Android 标准的方式不可用 adb shell cmd package install-existing com.phicomm.speaker.player,因为R1固件里没有 package命令)

uninstall 后另一种恢复方式是重新安装一遍系统App:

adb shell settings put secure install_non_market_apps 1
adb push EchoService.apk /mnt/internal_sd/
adb shell /system/bin/pm install -r /mnt/internal_sd/EchoService.apk
adb shell rm /mnt/internal_sd/EchoService.apk
adb reboot

恢复出厂设置(清空 userdata)

方法为按住R1顶面板的键,然后接入电源,直到灯变蓝/紫,然后等待一段时间即可。

刷了官改固件的应该可以用这个。(使用的是recovery ?)

氛围灯

官方固件 com.phicomm.speaker.player (EchoService.apk)

语音“小讯小讯,氛围灯”来开启氛围灯

蓝牙

默认固件里的斐讯全家桶App会接管系统的蓝牙设备管理,导致:

  • 每次开机后必须手动开启蓝牙:
    • 点击三下按钮 手动打开蓝亚
    • 已配网后,通过语音叫 小讯小讯打开蓝牙
  • 如果长时间无蓝牙设备连接,或连接的蓝牙设备断开后会自动关闭蓝牙。必须再次通过上面步骤才能开启蓝牙。

如果精简了斐讯全家桶后就无法通过按3次键或语音进入蓝牙配对模式了,R1固件里连设置App都没有,需要通过第三方 App (如 Bluetooth Settings) (by4a.bluetoothsettings)来管理蓝牙、连接新设备。

刷机 (需要拆机焊接)

Windows 下使用 AndroidTool 这个工具。

  1. 拆机焊接 usb。可以焊接个 type c / microusb 接头上去,或者直接焊接根 usb 线。
  2. 将焊接过的usb插入电脑,接着R1接通电源。(注意似乎必须先连接PC usb再接通R1电源,否则PC无法发现R1设备)
  3. 打开 AndroidTool,第一次刷机需要MSC驱动。正确连接的情况下,AndroidTool_Release会提示发现一个MSC设备 (实际上就是 adb 设备)。点击AndroidTool 界面上的 切换 (实际上就是 adb reboot bootloader),然后从inf文件或驱动目录搜索安装驱动, AndroidTool会提示发现LOADER设备,设备管理器会显示Rockusb Device。
  4. 驱动安装完成后就可以刷机了,选择刷写的分区和分区文件,点击执行刷机。(旧版工具需要手动根据offset选择分区)
    • boot.img
    • system.img
    • userdata.img
  5. 刷机完成后音箱会自动重启。

用户app和数据放在 userdata 分区 (/data) 里。刷 boot / system 一般不影响。但我遇到过刷新固件 system 后系统工作不正常 (adb 无法安装 apk),最后重置系统(清除 /data 数据) 解决。

参考 R1 分区信息

0x00002000    0x00002000   uboot
0x00004000    0x00004000   trust
0x00008000    0x00002000   misc
0x0000a000    0x00000800   baseparamer
0x0000a800    0x00007800   resource

0x00012000    0x00006000   kernel
0x00018000    0x00006000   boot
0x0001e000    0x00010000   recovery
0x0002e000    0x00020000   backup
0x0004e000    0x00040000   cache

0x0008e000    0x001fe000   userdate
0x0028c000    0x00008000   metadata
0x00296000    0x00002000   kpanic
0x00298000    0x00180000   system
0x00418000    0x00040000   private

0x00458000    0xffffffff   user (userdata)

救砖:

拆机,连接R1 usb 到 PC 然后开机的同时,短接R211的任意一段到屏蔽盖上任意点,进入maskrom 模式

DLNA

airpin

root

通过刷入 magisk 修改过后 boot 分区

  1. 下载 root 后的 R1 boot 镜像 (R1_rooted_boot.img)
  2. 斐讯重启到 rkusb 模式(命令: adb reboot bootloader )或使用 Windows 下 AndroidTool 的 “切换”按钮功能。
  3. 刷入修改后的 boot.img。Linux下,用 rkflashtool 命令刷: rkflashtool w boot < R1_rooted_boot.img;windows下有用 AndroidTool 刷。
  4. 重启R1(Linux 下 命令: rkflashtool b;Windows 下 AndroidTool 刷完后自动重启设备)
  5. 安装 MagiskManager(adb install MagiskManager_7.3.2.apk)
  6. 打开投屏软件 (java -jar androidscreencast-0.0.13s-executable.jar) 或者任何其它自己熟悉的投屏软件。在投屏软件里启动 Magisk, 第一次运行 Magisk 时必须联网下载所需文件。所以在这之前必须先给 R1 配好网络。
  7. 运行 adb shell su,在投屏软件上点击许可,至此可以得到完整的 root 权限。
  8. 可选:为adb shell 以及所有所需app赋予过root权限后,可以停用MagiskManager: pm disable com.topjohnwu.magisk

测试 R1 用 adb shell su 可以拿到 root shell。(但直接用 adb shell 拿不到 shell: adb 报错 error: closed)

2个 R1 组成立体声

基本原理是设备(PC或手机)同时连接两个 R1 的蓝牙,然后用工具将音频的左右声道分别发送到不同的R1音箱播放。

Windows 10 可以使用 ASIO 这个软件,在 ASIO 软件配置里设置映射左右声道到不同R1蓝牙设备,然后在音乐播放App里设置输出设备为 ASIO: ASIO4KSDriver。

Android 的话,三星手机自带连接双蓝牙音频设备左右声道分别播放功能。标准的Android设备需要使用第三方工具。


Last update: 2020-10-21 06:07:30 UTC