自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Aidl 学习小结

由于使用aidl主要用于进程间通信,不同进程间的文件描述符关联信息是不同的,所以我在aidl中添加了传递文件描述符的接口,来验证进程间的通信。注2:ParcelFileDescriptor.open中第二个参数,如果直接填 MODE_WORLD_READABLE会报安全问题。到ren.txt,然后push到设备中;一、在android11上的差异(环境androidstudio2022)注3:AndroidManifest.xml 中添加读写文件的权限。本小结是基于博主教程在android11上的实现。

2024-07-22 16:10:11 636

原创 简单 JNI实现java与C++集成

替换distributionUrl:https://mirrors.cloud.tencent.com/gradle/gradle-8.0-bin.zip。6.2)构造数组需要选用byte[]而不是Byte[],后者是类不是java的基础类型;6.3)C++接口实现有输入参数,处理时需要调用env->Getxxx,不能直接处理;注1:可以看到java调用c++的接口,是通过jni实现的。3.1 java端是MainActivity.java 需要调用接口;注2:传递的参数都是jni中的类型。

2024-07-17 16:53:08 638

原创 VScode 远程连接服务器

注:以上只是我的操作流程,仅供参考。安装扩展借鉴 https://zhuanlan.zhihu.com/p/655276102。相关配置会保存到C:usersxxx.ssh\config。点击SSH中“+”选项卡,会要求输入用户,ip,及端口。右下角会有remote 连接,点击连接,输入密码。vscode 安装 remote-SSH 扩展。密码确认后,进入远程服务器,可以访问服务器代码。重启VScode后,相关连接保存在选项卡中。退出远程,只需要在输入密码时按 Esc。

2024-07-16 17:41:13 221

原创 MTK 不同安卓版本的刷写

由于不同的安卓版本,镜像的分区会有不同,所以下载前需要格式化选择Format All+Download。注:具体刷写教程可以搜索网上其他博主的分析;刷写工具上welcome选项卡也有相关说明。https://spflashtools.com/ , 我下载的是v5.2228版本。

2024-07-16 16:41:25 207

原创 ubuntu 22.04 编译mtk 安卓9代码

方法1:降低gcc版本,ubuntu22.04是gcc-11 需要降低到gcc-9。搜索博主文章有两个解决方法:https://blog.csdn.net/xiandang8023/article/details/124750391。下面是修改后文件状态。具体参考博主:https://blog.csdn.net/qq_32607609/article/details/128318438。参考:https://blog.csdn.net/CrazyZik/article/details/117163973。

2024-07-16 16:24:56 404

原创 linux 非阻塞式读串口小计

之前调试串口使用阻塞读,并加延时。发现读写效率不高,因为串口每次读出来的数据,并不全需要增加很长的延时,否则需要循环读。但是循环读当数据读完后,会造成程序阻塞。所以想提高效率,我采用非阻塞式读写,并使用循环读+select监听fd的方式。当文件描述符提示可读在读,当校验通过时退出循环。注:只是改善方案,非最优方案,在此记录一下。

2024-07-12 17:21:26 156

原创 ubuntu tab键无法自动补全

参考:https://huaweicloud.csdn.net/63566689d3efff3090b5d530.html。简单方法:修改/etc/passwd,在对应用户名的用户主目录后面,添加:/bin/bash。原因:新建的用户,shell是dash,改为bash,问题就解决了。

2024-07-12 17:04:48 594

原创 使用openssl 实现base64编解码

注:BIO_write()后一定需要调用BIO_flush(),将BIO_mem 内部缓冲区的数据都写出去。借助BIO对象是OpenSSL中的一种抽象,用于处理各种类型的输入/输出,如文件、套接字、内存等。– BIO_write(),使字符串经过B64编码,写入BIO_mem, 再从memory读出。BIO链,通过BIO_push()接口,可以实现b64对象和需要编解码的字符串的链接。– BIO_read(),使字符串经过B64解码,读出;

2024-07-12 14:58:35 204

原创 动态库的路径

链接器选项 -L: 编译的时候去找的目录.也就是所有的 -lxxx选项里的库都会先从 -L 指定的目录去找,然后是默认的地方(/lib and /usr/lib).可以通过-L指定连接时库的路径,通过-R(或-rpath)指定程序运行时库的路径,大大提高了库应用的灵活性.(ld默认搜索/lib和/usr/lib这两个目录)我在写makefile时,一直以为动态库的路径,是指定-L后面的路径。注:由于不习惯使用-R,所以我才把需要的动态库路径写入/etc/ld.so.confg 并更新运行路径。

2024-07-12 10:56:55 266

原创 centos7.9 系统 openssl源码编译

如果原来系统中有openssl,请事先做好备份。头文件和库可以在源码编译时设置路径,bin文件需要创建软链接。注2:创建软链接后可以直接使用openssl命令,记得把原来软链接备份或者移除;源码下载:https://www.openssl.org/source/注3:如果使用动态库,记得把运行时库路径放置到环境路径中;注1:头文件和库文件在makefile中设置;注1:prefix 表示之后的安装路径。注2:./config 遇到的环境问题。至此openssl 源码升级完成。

2024-07-12 10:29:36 366

原创 g++ -O2编译结果异常

分析:添加-O2会调用uart_close(),不添加-O2则不会调用uart_close();-O2优化参数:编译器可能会优化代码的执行顺序。尝试:多种逻辑判断无果(

2024-07-08 15:09:13 269

原创 主机 usb插拔失效

可能是VMUSBArbSevice中出现了问题,所以停用后相当于重启。正常情况下,打开虚拟机接入usb设备时,才会识别为vmware usb device。2.2 参考博主 https://blog.csdn.net/kevin_lcc/article/details/43911209。2.1 查看设备管理器,发现在主机插拔的usb设备都识别为vmware usb device;方法任务管理器中 停用 VMUSBArbSevice服务后,usb设备识别正常。现象:关闭虚拟机后,主机插拔usb 不识别。

2024-07-08 13:59:01 167

原创 makefile 静态链接库有顺序

注:第一种编译时会报错,因为cppserver调用了cppcommon的函数。调试了很久,果然每件事的细节都需要研究。

2024-07-05 17:47:01 257

原创 linux 串口读数据阻塞

现象: 在虚拟机上调试linux串口时,当写入数据后,读数据时遇到阻塞。下面这篇博文对串口各个属性,都要详细介绍,mark一下为以后学习。

2024-07-01 17:23:19 291

原创 Android Studio 加载第三方库

3.3 如果路径中使用${CMAKE_ANDROID_ARCH_ABI},则ndk需要含有四种架构,且libs目录下也要有四种对应的库。总结:以上只是会为了调试结果而写的记录,没有仔细分析原理。我是按照上面博主的分享尝试的,现记录一下自己遇到的问题。

2024-06-25 18:17:38 1178

原创 南瑞芯片SM1 加密现象

但是实际情况,会出现加解密异常。(打印EK 和IV与解密端一致,怀疑执行若干次SM1加密后,DK发生变化)。根据规格书说明 SM1 EK和IV在第一次导入不变后,后续不需要导入。具体原因未知,现每次加解密前都导入 EK 和 IV后,基本正常。

2024-06-17 18:36:08 293

原创 南瑞SM1加密(测试规律)

结论:对于SM1加密,再加密数据后添加16个0后,用填充后数据解密。解密后的数据等于源数据+16个非0数据(与芯片SM1算法有关)我做了10次测试,分别用随机数产生512数据(5次)和随机数产生1024数据(5次)对于SM1 加密,如果源数据加密,后再用加密数据解密,可以得到源数据。注:结论只是针对南瑞芯片SM1算法,进行了10次测试的结果。如果改变了了加密数据,是否能够找出解密后的源数据呢?

2024-06-13 15:35:25 200

原创 南瑞加密芯片加密指定长度(0xe0)失败

解决方案:当遇到长度低字节位为0xe0时,在原数据后填充16个0,再加密。当长度p2,p3中的低字节位 p3=0xe0时,加密大概率失败。下面log可以看出对比非0xe0,0xe0长度的加密过程。注:由于加解密数据需要16的整数倍,经验上来讲填充16的倍数,保证长度低字节位非0xe0即可。分析原因:可能长度0xe0与ins值相同,导致芯片内部逻辑存在bug(个人感觉);当长度位0xe0时,大概率第二次接收INS命令读不到0xe0,导致加密失败。

2024-06-13 13:43:58 268

原创 安卓app增加创建文件权限

AndroidManifest.xml中添加权限。注:只添加下面两项没有效果。

2024-06-06 10:32:15 215 2

原创 简单的读写记录

想尝试一下把字符串以二进制的方式写入文件,然后以二进制的方式读出来。但是写入helloworld,始终读出乱码。之后我尝试一下别的后缀,如 .txt和.csr,都能正常以二进制方式读写。我记录一下这个小问题,二进制写入文件,文件一定需要指定后缀。更改char类型和string类型写入和读出,依然乱码。

2024-06-04 17:19:16 162 2

原创 初级C++处理字符串函数总结(一)

初级C++处理字符串函数总结(一)1、大小与容量1.size() 和 length():对于字符串返回个数两个函数是等效的。注:size() 获取容器元素个数,length()相当于strlen()传回字符串长度。2.empty() 检验字符串字符数是否为空。2、子串和字符串接合s.substr(): 复制字符串s;s.substr(11): 截取从第11位开始到最后;s.substr(5,6): 截取从第5位开始起的6个字符。3、find函数:find(text)text:cons

2020-09-24 21:28:34 287

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除