2021年6月

网上查到的版本是上一版的,注册及导入素材之类很多操作要靠批处理和命令行实现和当前版本已经不一致。
所以还是对照着官方文档自己先摸索一下吧,感觉并不需要太深入研究高阶的功能。

初期目标:

  1. 能批量导入场景,后期能追加删除场景
  2. 能自定义导航工具条的部分样式
  3. 能添加和编辑自定义的热点(hotspot)把众多场景链接起来

大概这样便足够了(这个并不是本篇要完成的全部目标)


- 阅读剩余部分 -

cntools的各个组件,主要指配置文件 $CNODE_HOME/env 会经常性的自动更新到和服务器上的最新版本
由于众所周知的网络原因经常会发生更新下载不完整或者下载失败,配置文件不完整导致 cnode在定期自检重启的时候会启动失败
查看运行状态

systemctl status cnode

systemctl status cnode
● cnode.service - Cardano Node
     Loaded: loaded (/etc/systemd/system/cnode.service; enabled; vendor preset: enabled)
     Active: inactive (dead) (Result: exit-code) since Fri 2021-06-25 17:02:08 UTC; 298ms >
    Process: 574350 ExecStart=/bin/bash -l -c exec /opt/cardano/cnode/scripts/cnode.sh (code exited 128 ...

以上是注册为后台服务的方式,检测到服务掉线还会自动执行重启
下面还会有个自动重启次数,当我发现的时候已经尝试重启已经达到 1万7千多次

...
手动执行 cnode.sh 启动,得到错误提示:

./cnode.sh
InvalidYaml (Just (YamlException "Yaml file not found: "))

cardano-node: YAML exception:
Yaml file not found: 

事实上并不是什么 yaml的问题,检查 env 文件,发现被自动替换成了一个5k字节的新文件。淦
幸好env更新的时候会自动备份,把最后一个备份恢复替换env文件即可启动成功

mv env env.bak
cp env_bkp1624640864 env
ls -l

-rw-r--r--  1 root root  41980 Jun 25 17:07 env
-rwxr-xr-x  1 root root   5314 Jun 23 19:43 env.bak*
-rwxr-xr-x  1 root root   5314 Jun 23 20:00 env.bak20210501*
-rwxr-xr-x  1 root root  12146 Jun 23 20:00 env.bak202105121559*
-rwxr-xr-x  1 root root  24802 Jan 29 10:35 env_bkp1611916514*
-rwxr-xr-x  1 root root  27506 Jan 29 16:23 env_bkp1611937427*
-rwxr-xr-x  1 root root  27932 Feb 12 04:38 env_bkp1613104707*
-rwxr-xr-x  1 root root  27896 Mar  2 14:04 env_bkp1614693852*
-rwxr-xr-x  1 root root  29011 Mar  2 14:16 env_bkp1614694618*
-rwxr-xr-x  1 root root  29743 Mar 16 21:53 env_bkp1615931614*
-rwxr-xr-x  1 root root  29744 Mar 20 11:52 env_bkp1616241170*
-rwxr-xr-x  1 root root  29828 Mar 20 17:24 env_bkp1616261083*
-rwxr-xr-x  1 root root  29825 Apr  7 17:04 env_bkp1617815073*
-rwxr-xr-x  1 root root  31870 Apr  8 03:10 env_bkp1617851419*
-rwxr-xr-x  1 root root  31910 Apr 11 17:08 env_bkp1618160924*
-rwxr-xr-x  1 root root  32049 Apr 11 17:59 env_bkp1618163989*
-rwxr-xr-x  1 root root  32049 Apr 15 21:42 env_bkp1618522974*
-rwxr-xr-x  1 root root  32091 Apr 30 17:08 env_bkp1619802511*
-rwxr-xr-x  1 root root  32091 May  3 21:08 env_bkp1620076095*
-rwxr-xr-x  1 root root  40064 May 12 07:56 env_bkp1620806177*
-rwxr-xr-x  1 root root  40064 May 17 14:08 env_bkp1621260538*
-rwxr-xr-x  1 root root  40140 May 24 01:32 env_bkp1621819973*
-rwxr-xr-x  1 root root  40190 May 25 10:37 env_bkp1621939057*
-rwxr-xr-x  1 root root  40355 Jun 17 16:27 env_bkp1623947272*
-rwxr-xr-x  1 root root  40355 Jun 23 19:39 env_bkp1624477188*
-rwxr-xr-x  1 root root  40355 Jun 23 19:43 env_bkp1624477402*
-rwxr-xr-x  1 root root  40355 Jun 25 17:07 env_bkp1624640864*

此时再次被提示是否升级新版本,输入 yes
检查更新后的新文件依然有 41k 大小,应该是完整的。
执行节点重启

systemctl restart cnode

成功没有问题,故障解决。

没什么技术含量的一篇,纯备忘。ll

新到的手柄支持遥控gopro,用的是模拟手机app的方式
还有另一个gopro原厂的 smart & remote max 遥控

因为手柄右侧会挡住电源开关按钮,第一次配对的时候让我一顿拆装。配对测试完后我又发现没法关机。

太傻了!

于是想到了能不能用原厂遥控同时控制呢?
遥控是支持最多一个遥控同时控制多达几十台gopro的。
我用遥控开关机,就不用每次都去拆机。

结论:
不行,遥控可以一对多,但gopro同一时间只能接受一个外部的控制器。优先级是 手机app的远程比遥控器优先级高
只有当我把手柄电源off了之后,原厂遥控才能接管控制。
P.S. 但是在遥控器上,能看到gopro的状态如果切换模式、工作状态变更,都能显示在遥控器的小屏幕上。

没有卵用的知识增加了 +1

而且我发现一个更重要的事实,原厂遥控也没有关机功能,只有唤醒功能。
同样只能等5分钟无操作后gopro自己休眠。
可gopro的电池只能撑1小时啊,白白耗掉5分钟挺让人难受的。

太傻了! 我也傻了!!

补充:
遥控器可以关机,长按2秒开关机按键 遥控会发送关机指令,然后自己也关机。

原厂和遥控和 gopro 电源管理逻辑类似都有两个关机状态。
一个是真的断电,另一个是低功耗休眠。
前者需要长按开关8秒彻底关,遥控无法唤醒。
一般情况都处于后者。

原来只有我傻

需要给某个安卓app的安装包做导流安装服务。谨慎如我并不想直接安装在自己的手机查看包名。找到了以下方法

*需要电脑上装有android-sdk 版本任意,不要太旧即可

进入build-tools目录, 命令行下执行

aapt dump badging [yourapp.apk]

得到相关结果

E:\android\android-sdk-windows\build-tools\19.1.0>aapt dump badging gjfz.apk
package: name='com.hicorenational.antifraud' versionCode='39' versionName='1.1.6'
sdkVersion:'21'
targetSdkVersion:'28'
uses-permission:'android.permission.READ_PHONE_NUMBERS'
uses-permission:'android.permission.READ_CALL_LOG'
uses-permission:'android.permission.READ_PHONE_STATE'
uses-permission:'android.permission.READ_CONTACTS'
uses-permission:'android.permission.VIBRATE'
uses-permission:'android.permission.ACCESS_NOTIFICATION_POLICY'
uses-permission:'android.permission.ACCESS_NETWORK_STATE'
uses-permission:'android.permission.ACCESS_WIFI_STATE'
uses-permission:'android.permission.MODIFY_AUDIO_SETTINGS'
uses-permission:'android.permission.SYSTEM_ALERT_WINDOW'
uses-permission:'android.permission.SYSTEM_OVERLAY_WINDOW'
uses-permission:'android.permission.RECEIVE_SMS'
uses-permission:'android.permission.READ_SMS'
uses-permission:'android.permission.RECORD_AUDIO'
uses-permission:'android.permission.READ_EXTERNAL_STORAGE'
uses-permission:'android.permission.WRITE_EXTERNAL_STORAGE'
uses-permission:'android.permission.RECEIVE_BOOT_COMPLETED'
uses-permission:'android.permission.DISABLE_KEYGUARD'
uses-permission:'android.permission.WAKE_LOCK'
uses-permission:'android.permission.BROADCAST_PACKAGE_ADDED'
uses-permission:'android.permission.BROADCAST_PACKAGE_CHANGED'
uses-permission:'android.permission.BROADCAST_PACKAGE_INSTALL'
uses-permission:'android.permission.BROADCAST_PACKAGE_REPLACED'
uses-permission:'android.permission.MOUNT_UNMOUNT_FILESYSTEMS'
uses-permission:'android.permission.WRITE_SETTINGS'
uses-permission:'android.permission.INTERNET'
uses-permission:'android.permission.CAMERA'
uses-permission:'android.permission.GET_TASKS'
uses-permission:'android.permission.READ_LOGS'
uses-permission:'android.permission.REORDER_TASKS'
uses-feature:'android.hardware.camera'
uses-feature:'android.hardware.camera.autofocus'
uses-feature:'android.hardware.camera.flash'
uses-permission:'com.hicorenational.antifraud.permission.ANTI_VIRUS'
uses-permission:'android.permission.FOREGROUND_SERVICE'
uses-permission:'android.permission.REQUEST_INSTALL_PACKAGES'
uses-permission:'com.android.browser.permission.READ_HISTORY_BOOKMARKS'
uses-permission:'android.permission.REQUEST_DELETE_PACKAGES'
uses-permission:'android.permission.ACCESS_COARSE_LOCATION'
uses-permission:'android.permission.ACCESS_FINE_LOCATION'
uses-permission:'android.permission.ACCESS_NETWORK_STATE'
uses-permission:'android.permission.ACCESS_WIFI_STATE'
uses-permission:'android.permission.CHANGE_WIFI_STATE'
uses-permission:'android.permission.INTERNET'
uses-permission:'android.permission.READ_PHONE_STATE'
uses-permission:'android.permission.WRITE_EXTERNAL_STORAGE'
uses-permission:'android.permission.ACCESS_LOCATION_EXTRA_COMMANDS'
uses-permission:'android.permission.FOREGROUND_SERVICE'
uses-permission:'android.permission.ACCESS_BACKGROUND_LOCATION'
uses-permission:'android.permission.QUERY_ALL_PACKAGES'
uses-permission:'android.permission.READ_APN_SETTINGS'
uses-permission:'android.permission.BROADCAST_STICKY'
uses-permission:'android.permission.CHANGE_NETWORK_STATE'
uses-permission:'com.hicorenational.antifraud.permission.TMF_SHARK'
uses-feature:'android.hardware.camera2.full'
uses-permission:'com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE'
uses-permission:'com.heytap.mcs.permission.RECIEVE_MCS_MESSAGE'
uses-permission:'com.vivo.notification.permission.BADGE_ICON'
uses-permission:'com.hicorenational.antifraud.permission.MIPUSH_RECEIVE'
...

话说...这开通的权限和功能清单...是不是有点多的离谱


参考 : https://www.huaweicloud.com/articles/fa2768e47170c882e48042f013f3cebd.html