斐讯R1升级要点

最近入手了一下斐讯R1音箱,因为斐讯翻车了,所以智能音箱只能当蓝牙和 airplay 音箱了。

折腾过程中发现几个点网上没有提到的,或者很难找到的,在这里汇总一下。
1: 音箱联网需要 APP 辅助,但是新装斐讯 AI APP 需要帐号登录,没有帐号的话不要着急,去斐讯商城注册一个即可,地址自行谷歌。
2: 无法绑定音箱还需要查看版本号的方法,先按三下顶部按钮,进行蓝牙配对以后,用手机放歌的时候再喊小讯小讯,就可以查询版本号了
3: 一键升级包里面的地址一般都已经挂了,所以需要自己随便架个服务器,完全没有必要劫持dns什么的,直接改txt里面的地址就好,用IP就可以,端口也可以不用标准的,我用的就是8080

Google Pixel3 (XL) 开启电信 + VoLTE 支持之最干净的改法

Pixel3(XL) 开启电信和 VoLTE 支持网上有很多改法,但是大部分都对系统伤害过大,或者使用的版本过老。自己倒腾了半天大概搞明白了,于是这里就是对系统最小的改法了。

开开发模式,允许 adb 什么的设置就不讲了。

先解锁,这一步会丢数据,注意了。

adb reboot bootloader
等重启进bootloader 以后
fastboot flashing unlock
等界面上提示以后,用音量键上选择确认解锁。

接下来,从 https://developers.google.com/android/images 下载对应机型最新的版本,解开以后用 flash-all.bat 把手机整个刷了,注意,依然会清除所有数据,如果不想清除,请自行编辑 flash-all.bat 去掉 -w 参数

接下来从 https://pan.baidu.com/s/1KMtYGaqnlDPWFZKvbde9PA 下载 vbmeta.img
fastboot –disable-verity –disable-verification flash vbmeta vbmeta.img

接下来 https://twrp.me 下载对应机型的最新版本。
fastboot boot twrp-<版本>.img
进入以后如果要输密码,选 cancel,之后 enable modification ,然后进去以后我用的版本不会自动启 adb, 我是在 Advanced 里面选 adb sideload 以后取消,他就启动起来了。别的版本可能没有这个问题

接下来 adb shell 进去执行命令
mount /dev/block/by-name/vendor_a /vendor
退出
adb pull /vendor/rfs/msm/mpss/readonly/vendor/mbn/mcfg_sw/mbn_sw.txt
编辑 mbn_sw.txt
最后一行加上
mcfg_sw/generic/China/CT/Commercial/VoLTE_OpenMkt/mcfg_sw.mbn
然后
adb push mbn_sw.txt /vendor/rfs/msm/mpss/readonly/vendor/mbn/mcfg_sw/
如果不需要 VoLTE,只需要电信支持,那么改到这里就已经可以了,如果还需要 VoLTE
那么继续
adb pull /vendor/build.prop
编辑 build.prop
最后面加上
#VoLTE
ro.mtk_ims_support=1
ro.mtk_volte_support=1
persist.mtk.volte.enable=1
persist.dbg.volte_avail_ovr=1
persist.dbg.ims_volte_enable=1
persist.dbg.volte_avail_ovr=1
persist.dbg.vt_avail_ovr=1
persist.dbg.wfc_avail_ovr=1
persist.radio.rat_on=combine
persist.radio.data_ltd_sys_ind=1
persist.radio.data_con_rprt=1
persist.radio.calls.on.ims=1

然后
adb push build.prop /vendor

最后
adb shell umount /vendor

在 twrp 的界面里面重启,注意选那个 Do not install, 不要滑动

重启以后如果没有效果,在系统选项里面恢复出厂设置即可

用这个方案,对系统只有三处修改,算是最干净的修改方式了,而且使用的是最新版本的 pixel 软件

一共就修改了
1: 解锁 bootloader
2: 修改了 vbmeta 分区,禁用了 dm-verity
3: 修改了 vendor 分区,加入了电信的配置,并且打开了系统设置里面 VoLTE 的开关。

斐讯N1刷CentOS7最简操作

准备工具

  • N1 一台
  • USB 双公口线一条
  • 4G 以上 U 盘一个,越老越好,新 U 盘可能有兼容性问题
  • 可以运行安卓adb工具的电脑一台,win/mac/linux都行

降级 bootloader 

首先下载文件 

微云:https://share.weiyun.com/5vAkZ7p 密码:nzwy53

将N1接上网线,HDMI线接显示器,离HDMI口远的那个USB口接一个鼠标。连上网以后,等个五分钟左右,待其自动升级到最新版,中间可能会多次重启升级,直到不再升级为准。否则如果正在刷的过程中N1重启可能会有点麻烦。

接下来用鼠标点击屏幕上版本号的地方三次,屏幕中间会显示一下开启 adb。

将 N1 上距离 HDMI 口近的那个 USB 口和电脑之间用 USB 双公头线连接,并让电脑和N1处于同一局域网下,首先执行

adb connect <N1的IP地址,可以在N1屏幕上看到>

adb shell reboot fastboot

此时应该可以看到N1重启黑屏,接下来在电脑上执行

fastboot devices

如果能够显示出一行设备信息,说明 USB 连接正常,将最开始下载的文件包中 boot.img bootloader.img recovery.img 三个文件放在当前目录下,并执行

fastboot flash bootloader bootloader.img

fastboot flash boot boot.img

fastboot flash recovery recovery.img

fastboot reboot

如此便完成了bootloader 降级

刷入 Armbian

首先从 https://yadi.sk/d/pHxaRAs-tZiei 下载最新的版本,因为我们最后还是要刷成 CentOS,所以下个最小的就行,比如Debian不带 desktop 的版本。将 .xz 文件解开以后是个 .img 文件。将这个文件用 Win32Imager 或者 USB Image Tool ,或者在 linux 下 dd 直接写入 U 盘。

接下来打开第一个分区,在 Windows 上面应该是一个 BOOT 分区,下载

https://github.com/yangxuan8282/phicomm-n1/releases/download/dtb/meson-gxl-s905d-phicomm-n1.dtb

这个文件到 dtb 目录下, 用文本编辑器编辑根目录下面的 uEnv.ini ,将里面 dtb 一行替换成这个文件的名字并保存,Armbian 启动 U 盘就做好了

接下来N1的两个 USB 口一个接 U 盘,一个接 USB 键盘。HDMI 线接显示器,加电启动。屏幕会先出现启动画面,之后

如果进入了原系统,那么第一时间把电拔了重启!!!!!否则 U 盘可能会被原来的安卓系统写乱。

这里如果多次重复,还是无法进入Linux系统,那么请换个 U 盘再试,基本这里不成功都是因为 U 盘兼容性问题导致的。最好是 USB 2.0 的 U 盘。

进入 Armbian 以后用 root:1234 登录,会被要求修改密码和创建普通用户。完成以后会留在一个 root shell 里面。下面执行

./install.sh

完成以后,拔掉 U 盘重启,应该就可以看到 Armbian 系统启动了。

刷成CentOS

首先N1 继续插上 U 盘启动,这样进入的还是 U 盘上的系统,把网线接上保持网络通畅。执行

cd /root

wget 
https://mirrors.tuna.tsinghua.edu.cn/centos-vault/altarch/7.4.1708/isos/aarch64/CentOS-7-aarch64-rootfs-7.4.1708.tar.xz 

mkdir /root/x

e2fsck -y /dev/mmcblk1p2

mount /dev/mmcblk1p2 /root/x

cd x

rm -rf *

cd /root

tar –numeric-owner -xpJf 
CentOS-7-aarch64-rootfs-7.4.1708.tar.xz -C /root/x

cd x/lib

rm -rf modules firmware

cp -rp /lib/modules .

cp -rp /lib/firmware .

cd /root

umount x

之后关机拔掉 U 盘,重启即可进入 CentOS, root 密码是 centos

参考资料

  • http://www.right.com.cn/forum/thread-322223-1-1.html
  • http://www.right.com.cn/forum/thread-322991-1-1.html
  • https://github.com/umiddelb/aarch64/wiki/Install-CentOS-7-on-your-favourite-ARMv8-ARM64-AArch64-board

北京联通宽带时不时出现苹果AppStore无法连接的解决方法

这个问题其实好多年了,一旦出现以后短时间以内就很难解决,除非断开家里 WiFi 改用 4G. 今天正好又出现了,借着 ROS 可以远程抓包的功能顺手调试了一下,发现这个问题原来是网宿弱智导致的。

AppStore 在启动和工作中会连接很多域名,其中下面这些(在 iOS 12 beta4 上测试,不保证其他版本)

client-api.itunes.apple.com
init-p01st.push.apple.com
play.itunes.apple.com
apps.mzstatic.com
api-edge.apps.apple.com
init.itunes.apple.com
bag.itunes.apple.com
search.itunes.apple.com

用国内的 DNS 解析会统一 CNAME 到 applewsashark.dtwscache.ourwebcdn.com

这个域名一看就是网宿的。如果去解析这个域名会发现,大多数时候只能解析出来一个 IP 。这个 IP 轮换的速度也挺快,可能几分钟就会换一个。然而出问题的时候解析到的 IP 经常都是不好使的,表现为 443 端口完全连不上,或者连上以后丢包非常严重,根本无法使用。奇怪的是,这些有问题的 IP,从其他地方访问有可能就是好用的,不知道是因为 anycast 到了不同的机器,还是网宿 peer 的带宽不足。

找到了症结就好办了,因为国内各大 DNS 解析出来都是同样的不好使的 IP ,于是直接从 8.8.8.8 解析了一个出来,在路由器上面把刚才一堆域名统统绑定到这个 IP,AppStore 秒开。

最后鄙视一下网宿,这问题这么多年了,居然一直都没有修好,跟大姨妈似的经常出现。

最近评论

时光机

其他