安装Gitea
背景为部门搭建Git服务器,以前搭建过GitLab(https://notes.z-dd.online/2019/04/24/Ubuntu-server18-04%E4%B8%8A%E6%90%AD%E5%BB%BAGitlab-docker%E6%96%B9%E5%BC%8F/),觉得比较臃肿,这次选择了比较轻量的Gitea。
安装使用的是Docker的方式
Docker安装及相关操作:请见https://notes.z-dd.online/2021/01/13/Docker%E7%9B%B8%E5%85%B3/
安装
获取官方docker镜像 sudo docker pull gitea/gitea:latest
运行容器 如果要将git和其它数据持久化,你需要创建一个目录来作为数据存储的地方:sudo mkdir -p /mnt/gitea sudo docker run -d --name=gitea --restart=always -p 10022:22 -p 10080:3000 -v /mnt/gitea:/data gitea/gitea:latest
然后 容器已 ...
Docker相关
环境
Ubuntu18.04/20.04 X64
安装使用自动化安装脚本安装curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
使用官方仓库安装
卸载旧版本的docker:
$ sudo apt-get remove docker docker-engine docker.io containerd runc
安装相关apt包:
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
添加Docker官方GPG key:
$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
设置稳定版的Docker仓库
$ sudo add-apt-repository "deb [arch= ...
Android之UVC调试
背景前段时间在Android机器上调试了UVC摄像头,最近又调试了HDMI转USB模块,它本质上也是虚拟成了一个UVC,和UVC的处理是一样的相关东西记录下
UVC预览及与本地摄像头动态切换测试代码:package com.example.myapplication;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import andr ...
RNDIS
背景因某些不可描述的特殊原因,需要将Android机器上的WIFI的网络通过USB共享到PC机步骤:
使用USB数据线连接PC的USB口和Android机器的USB主USB口,
打开Android机器设置里面的网络共享与便携式热点,打开USB网络共享开关,正常情况下(主流的Android手机),在Win10的设备管理器或者网络连接中,会新增一块网卡设备。但有些Android设备(比如RK3399的主板),USB插上去连接之后会显示一个未知的设备–RNDIS什么是RNDIS呢?又怎么装驱动?
概念RNDIS(Remote Network Driver Interface Specification) ,既是RemoteNDIS,既是远程网络驱动接口规范。基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,实现USB网卡功能
Win10上RNDIS驱动安装使用操作系统的”自动搜索更新的驱动程序”并安装RNDIS驱动会提示失败
选择第二项 “浏览我的计算机以查找驱动程序”–>选择 “让我从计算机上的可用驱动程序列表中选取”–> ...
Win双网卡配置路由
背景接上一篇,使用RNDIS将Android机器虚拟成一个网卡,现在电脑就有了双网卡。那么现在问题来了,有时候打开内网的一些地址无法打开,包括SVN、禅道等。一想肯定是路由问题,那在Win10上怎么配置路由呢?
Win10配置路由以前只有在Linux配过,后面发现Win10上其实差不多,都使用差不多的命令
首先以管理员权限打开CMD或PowerShell,
ipconfig -all 查看自己所有网卡的信息
使用route命令配置、查看路由信息 以下是route help获取的route命令的帮助文档
操作网络路由表。
ROUTE [-f] [-p] [-4|-6] command [destination]
[MASK netmask] [gateway] [METRIC metric] [IF interface]
-f 清除所有网关项的路由表。如果与某个
命令结合使用,在运行该命令前,
应清除路由表。
-p 与 ADD 命令结合使用时,将路由设置为
在系统引导 ...
Hello,2021!
新年新气象在2020的最后几天,把博客版本升级了下,更换了新的主题。
2020,不论是个人生活,工作,还是整个社会,都是不平凡的一年~
Goodbye 2020! Hello 2021!
记一次漏洞修复
背景最近产品被扫出一些中高级漏洞:
[ 高风险 ] jQuery < 3.4.0 Object Extensions 漏洞
[ 中风险 ] jQuery < 3.0.0 跨站脚本攻击漏洞
[ 中风险 ] Lighttpd < 1.4.51多个安全漏洞
[ 中风险 ] Lighttpd < 1.4.50 多个漏洞
[ 中风险 ] 支持SSH弱加密算法
进行了相关模块的升级:
lighttpd v1.4.39 ==>v1.4.58
jQuery(jquery.min.js ) v1.11.1==>v3.5.1
jquery.easyui.min.js v1.4.5==>v1.9.10
dropbear(ssh) port=22 ==> port=2222
中间遇到了一些问题,特此记录。
升级lighttpd
下载最新版本,交叉编译:
make distclean
./configure --prefix=/home/xxx/lighttpd-1.4.58/out --host=arm-poky-linux-gnueabi --bui ...
Android之APK预装
应用安装的目录
/system/priv-app该路径存放一些系统底层的应用,比如Setting,systemUI等。该目录中的app拥有较高的系统权限,而且如果要使用android:protectionLevel=signatureOrSystem,那么该app必须放到priv-app目录中去。
/system/app该目录中存放的系统app权限相对较低,而且当拥有root权限时,就有可能卸载掉这些app。
/vendor/app该目录存放vendor厂商的app
/oem/app该目录中存放oem特有的app。
/data/app用户安装的第三方app
PMS启动的时候,也是按照上述顺序逐个扫描解析这些目录中的apk的
Android标准的APK预装
在 packages/apps新建文件夹,如XXX
添加编译内容,新建并配置编译文件Android.mk,分2种情况
带源码
将Source code拷贝到XXX文件夹下,仅保留必要的目录,删除不必要的目录
创建Android.mk文件,可参考其他工程添加内容,根据自己工程的需要添加必要的编译条件:LOCAL_P ...
MIPI-DSI之DCS相关
概念MIPI DCS: MIPI Display Command Set
DCS读取多个字节DCS读取多个字节,需先通过MIPI_DSI_SET_MAXIMUM_RETURN_PACKET_SIZE(0x37)设置要读取的最大字节数
//...
ret = mipi_dsi_set_maximum_return_packet_size(state, 2);
if (ret) {
printf("mipi_dsi_set_maximum_return_packet_size ,error=%d!!\n", ret);
return ret;
}
ret = mipi_dsi_dcs_read(state, 0x04, &dwin_id[0], sizeof(dwin_id));
if (ret <= 0) {
printf("mipi_dsi_dcs_read ID[04h] ,error=%d!!\n", ret);
return ret;
}
printf("mipi_dsi_dcs_read ID[04h]=%x, ...
由F2FS引发的血案
背景基于RK3399开发的Android7.1.2批测时,频繁上下电测试,发现大概率出现启动进入recovery模式,而且一旦进recovery模式以后,每次上电都会进,不会进系统,只有在recovery模式下进行双清操作后,才能正常进入系统。从log分析是flash文件损坏或丢失,主要表现为一些配置文件读取失败或创建失败,服务启动失败。
对比data分区的文件系统类型,新的SDK默认为EXT4,现在用的老的版本还是F2FS修改data分区的文件系统类型为EXT4后, 测试无异常。
从 F2FS 文件系统切到 EXT4 需要格式化 data 分区,会导致 data 分区数据全部清空F2FS相对于以前使用的 EXT4 而言,随机读写的效率会优于 EXT4。但是另外一方面,EXT4 使用的范围更广,经历的时间考验也更久,稳定性这块我们认为可能会优于 F2FS,所以对于行业客户而言,如果更注重文件系统的稳定性,建议使用 EXT4
修改data分区的文件系统类型:
首先确认是否有使用强制加密功能,即 BUILD_WITH_FORCEENCRYPT 这个宏是否有使能,SDK 默认为使能状态, ...
shc在嵌入式Linux上的使用
shell脚本转成二进制可执行程序:gzexegzexe命令即可隐藏shell源码,它不但加密,同时压缩文件
gzexe xxx.sh
生成加密后的脚本xxx.sh和shell备份源码xxx.sh~缺点: gzexe可以直接转换明文。
gzexe -d xxx.sh
shc通过shc加密后一般来说是安全的, 不过可以使用gdb和其它的调试工具获得最初的源代码. 如果你需要更加安全的方法, 可以考虑使用wzshSDK.另外, shc还可以设置脚本的运行期限和自定义返回信息:
shc -e 11/23/2027 -m "xxx." -f xxx.sh
-e表示脚本将在2027年11月23日前失效, 并根据-m定义的信息返回给终端用户
shc编译
下载源码:http://www.datsi.fi.upm.es/~frosal/(官方), 也可以在github上搜索下载
./configure 配置生成Makefile
修改src下面Makefile:根据使用场景修改CC和CPP,如果是嵌入式,则修改为对应的交叉编译链;如果是PC,则不需要修改
mak ...
Alsa-lib操作
controlsint ctl_val(snd_ctl_t * handle, const char *elem_name, const int *elem_value)
{
snd_ctl_elem_info_t *info;
snd_ctl_elem_id_t *id;
snd_ctl_elem_value_t *value;
snd_ctl_elem_list_t *list;
snd_ctl_elem_type_t type;
unsigned int count, used, idx, info_count;
int err;
long tmp;
long long tmp64;
unsigned char need_set_val=0;
snd_ctl_elem_info_alloca(&info);
snd_ctl_elem_id_alloca(&id);
snd_ctl_elem_value_alloca(&value);
snd ...