- 博客(60)
- 资源 (1)
- 收藏
- 关注
原创 Android 命令行下如何查看kernel版本
这将显示包含内核版本、构建日期以及编译器等信息的完整字符串。这将输出设备当前运行的内核版本信息。
2024-10-08 08:29:36
722
原创 Android 系统WIFI AP模式
普通用户可以通过系统设置手动启用 Wi-Fi 热点。开发者可以使用系统 API(系统应用权限)或 ADB 命令启用热点。定制 ROM 开发者可以通过修改系统服务和配置文件,深入控制 AP 模式。根据你的使用场景和权限,可以选择最适合的方法。
2024-09-21 11:49:09
2223
原创 Android命令行启动settings
在Android设备上,你可以使用命令行启动“设置”应用。这个命令将启动设备的“设置”应用。你可以根据需要使用不同的Intent动作来启动特定的设置页面。
2024-09-21 11:40:01
1219
原创 Ubuntu NFS 搭建及配置
在 Ubuntu 上搭建和配置 NFS(Network File System)服务器,可以让其他设备通过网络访问共享的文件夹。
2024-09-21 11:39:00
948
原创 Android命令行查看CPU频率和温度
在 Android 设备上,你可以通过命令行工具 adb 来查看 CPU 温度和 CPU 频率,并确定是否有降频情况。
2024-09-11 09:11:08
2630
原创 Android如何对应用进行系统签名
2、把公钥 platform.x509.pem 转换成pkcs12格式,并指定 密钥别名。1、将pkcs8格式的私钥 platform.pk8 转化成pkcs12格式。3、生成AndroidStudio中可以使用的keystore文件。输入上述指令后,需要连续两次输入密钥密码。
2024-03-06 15:58:17
1083
原创 通过iptables将Linux主机作为代理,让设备上网
由于网络环境存在隔离,未认证的设备无法访问网络,但通过交换机连接的设备和Linux主机却能通信,配置Linux主机为代理上网。
2023-01-17 08:56:41
956
原创 mysql conn.getMetaData().getColumns获取指定表头为空问题
mysql jdbc getTables()、getColumns() 中,通配符进行转义的问题
2023-01-09 16:24:45
1019
原创 OpenCV 4.x交叉编译
编译0、下载代码:git clone -b 4.5.5 https://github.com/opencv/opencv.git 1、配置编译工具链,新建文件ax620a.toolchain.cmake,其内容如下:set(CMAKE_SYSTEM_NAME Linux)set(CMAKE_SYSTEM_PROCESSOR arm)set(CMAKE_C_COMPILER "arm-linux-gnueabihf-gcc")set(CMAKE_CXX_COMPILER "arm-linux
2022-05-23 12:46:57
1082
1
原创 安防摄像头移动侦测和遮挡侦测基本原理
移动侦测算法流程:将目标区域划分为指定大小的格子(如32x32像素),计算每个格子YYY的均值Y‾\overline YY前后帧对应格子Y‾\overline YY的差值的绝对值记为∣Ydiff∣\vert Y_{diff} \vert∣Ydiff∣,若∣Ydiff∣\vert Y_{diff} \vert∣Ydiff∣大于指定的阈值TyT_yTy则记为1,否则记为0统计最后1的个数是否大于指定阈值TconfidenceT_{confidence}Tconfidence,若大于则发生移动,
2022-05-19 16:17:54
3175
1
原创 Linux笔记
QEMU-KVM guest rootfs read-only issueqemu 启动参数-append 为"root=/dev/sda rw" 而不是"root=/dev/sda"Booting a Custom Linux Kernel in QEMU and Debugging It With GDB# one time setup$ mkinitramfs -o ramdisk.img$ echo "add-auto-load-safe-path path/to/linux/script
2022-03-28 00:58:28
961
原创 重学Android之Framework层应用程序进程创建流程
Android系统启动完成后,会启动第一Android应用Launcher。之后在用户操作下启动其他的应用程序。这两个流程大体一致,本文主要分析启动Launcher的启动流程。Android系统源码版本:9.0.0_r3整体流程图如下:Zygote启动流程Android Kernel启动后启动第一个进程init,init将解析init.*.rc文件启动进程zygote。*/system/core/rootdir/init.zygote32_64.rc1 service zygote /syst
2021-08-22 11:09:43
608
原创 ffmpeg 从视频中指定位置间隔固定时间取出图片
ffmpeg -ss 00:03:28 -vsync 0 -i input.mp4 -vf select='isnan(prev_selected_t)+gte(t-prev_selected_t\,5)' -qscale:v 4 ouput_%06d.jpg-ss 00:03:28 指定开始时间为00:03:28-vsync 0 必须要-i input.mp4 指定输入文件名为input.mp4-vf select=‘isnan(prev_selected_t)+gte(t-prev_s
2021-07-22 11:10:35
1314
原创 Pytorch计算数据集均值和标准差
代码来源Pytorch Quick Tip: Calculate Mean and Standard Deviation of Dataimport torchimport torch.utils.data.dataloader as dataloaderimport torchvision.datasets as datasetsfrom torchvision import transformstrain_dataset = datasets.CIFAR10(root="dataset/",
2021-03-30 10:00:08
1841
原创 不定长度验证码识别Pytorch版
模型结构采用CNN+RNN(CRNN)+CTCnotebook地址!pip install matplotlibimport torch.utils.data.dataloader as dataloaderimport torch.utils.data.dataset as datasetfrom torchvision import datasets, transformsimport torch.nn.functional as Fimport torchimport globim
2021-03-20 13:32:30
1894
5
原创 固定长度验证码识别TensorFlow版
识别固定长度的二维码 notebook!pip install captchaRequirement already satisfied: captcha in /usr/local/lib/python3.7/dist-packages (0.3)Requirement already satisfied: Pillow in /usr/local/lib/python3.7/dist-packages (from captcha) (7.0.0)from captcha.image impo
2021-03-20 12:20:48
319
原创 cuda 11.2环境下TensorFlow 2.4.1出现libcusolver.so.10 not found问题记录
环境:RTX3090cuda11.2tensorflow 2.4.1测试TensorFlow使用是否能够使用GPUimport tensorflow as tftf.config.list_physical_devices('GPU')出现libcusolver.so.10 not found在tensorflow 的issues#43947发现解决方案,降低cuda版本到cuda11.0,现记录操作流程:1、卸载cuda11.2,在目录/usr/local/cuda-11.2/b
2021-03-12 10:34:33
875
原创 windows python 3.6升级pip失败问题 ValueError: Unable to find resource t64.exe in package pip._vendor.distl
环境:windows10python3.6报错日志:Python36\site-packages\pip\_vendor\distlib\scripts.py", line 383, in _get_launcher raise ValueError(msg)ValueError: Unable to find resource t64.exe in package pip._vendor.distlib解决方法:1、卸载pip setuptoolspython -m pip un
2021-02-17 17:35:43
277
原创 Android颜色选择控件绘制原理分析
项目地址android-colorpicker支持颜色的设置,当前选择颜色的监听,效果如图原理颜色的表示有RGB,YUV,HSV,HSL等方式。RGB颜色空间,可以表示为一个立方体如图YUV 色彩空间,电视系统这种表示方法用的较多,兼容黑白电视,与RGB互转公式为(RGB取值范围均为0-255): Y = 0.299R + 0.587G + 0.114B U = -0.147R - 0.289G + 0.436B V = 0.615R - 0.515G - 0.100B R
2021-02-07 14:47:21
558
原创 Flowable 相关问题
环境:flowable-6.6.0问题一:用户密码数据库明文存储在flowable-default.properties配置文件中添加如下配置:flowable.idm.password-encoder=spring_bcrypt问题二:显示流程图中文乱码在flowable-default.properties配置文件中添加如下配置:flowable.activity-font-name=Defaultflowable.label-font-name=Defaultflowable.ann
2021-02-02 13:52:58
343
原创 极客时间-实用密码学-10怎么防止数据重放攻击
为什么还要学习 CBC 模式?不知道你是不是已经有了一个问题:既然 CBC 要退出历史舞台了,我们还学习它干什么呢?第一个原因,CBC 的退出进程可能需要十数年才能完成。你现在工作的项目种,可能还存在 CBC 模式的大量使用。我们学习了 CBC 模式,有助于你解决现存项目的安全问题。第二个原因,学习针对 CBC 的攻击方案, 是我们深入理解加密算法安全问题的最好的切入点。了解这些安全缺陷和攻击方案,有助于你更好地使用密码学的算法。因为,这些缺陷也可能换个面孔,出现在应用程序层面。如果你能够说清楚 CB
2020-12-16 09:48:33
4806
1
原创 极客时间-实用密码学-09为什么ECB模式不安全
链接模式怎么连?链接模式指的是如何把上一个分组运算和下一个分组运算联系起来,使得上一个分组运算可以影响下一个运算。但是,这个联系是怎么建立起来的,上一个运算到底又是怎么影响下一个运算的,这个描述是模糊的。从道理上来说,上一个分组运算的所有要素,都有可能参与到下一个分组运算里;下一个分组运算的每一个要素,都有可能接收上一个运算的一个要素或者几个要素的组合。而在这之间就会形成不同的分配组合,也就形成了不同的链接模式。ECB模式ECB模式不使用链接模式,也就不需要初始化向量。每一个分组的加密都是独立
2020-12-16 09:22:37
6225
原创 极客时间-实用密码学-08该怎么选择初始化向量
分组算法计算流程分组算法要对输入数据进行分组,然后按数据分组进行运算。一个典型的分组算法由三部分组成:数据分组、分组运算、链接模式。数据分组:数据分组在加密时会将明文数据分组为加密算法能够处理的固定大小的数据块。比如AES能够处理的数据块大小为128位,那么数据就要被分割成一个或多个128为的数据块。如果不能整分,就要把最后一个分组补齐为128位。这些分组数据的运算结果,组合起来就是密文数据。解密时进行相反的操作将补齐数据去掉,再把数据分组组合成完整的明文数据。理解了数据分组再来看一下分组运
2020-12-14 09:13:03
3847
原创 极客时间-实用密码学-07怎样选择对称密钥算法
对称加密性能影响有多大在下面的表格里,我给你总结了常见的一些算法,以及一些相关的信息。其中,计算性能参考的是 ECRYPT 性能基准测试在 2020 年 7 月对较长数据的运行结果。从上表中可以看出每个字节的加密、解密运算大约需要0.5个时钟周期,对比单向散列函数的性能,加密解密运算是一种很快的运算。序列算法和分组算法为了能够处理任意大小的数据并且输出结果长度固定,单向散列函数需要将数据分组,然后对数组进行运算。在对称加密算法里对输出数据没有长度限制,对数据的处理方式也就有更多的想象空间。如
2020-12-07 09:45:32
3504
原创 极客时间-实用密码学-5如何有效避免长度延展攻击
什么是长度延展攻击假设我们有两段数据S和M以及单向散列函数h,其中S是机密信息。我们通过hash=h(S+M)(其中+,表示字符串连接)计算hash值,通过计数数据的hash与原始hash对比来校验数据是否可靠。因为通常攻击者不知道S值。比如如下字符串(可以看作url的一部分):key_id=44fefa051fc1c61f5e76f27e620f51d5&perms=read&hash_sig=38d39516d896f879d403bd327a932d9ehash_si=h(
2020-12-02 16:40:07
3988
1
原创 极客时间-实用密码学-3如何设置合适的安全强度
有多难现代单向散列函数在算法意义上的破解,都是通过找到一对散列值相同的数据形式发布的什么是安全强度N位的安全强度表示破解一个算法需要2的N次方的运算组合的强度由最弱的算法和密钥决定安全强度会变吗算法的安全强度不是一成不变的,随着安全分析的进步,几乎所有的密码学算法的安全强度都会减弱。例如:MD5、SHA-1都不在安全,MD5安全强度最多 18 位,SHA-1 的攻击复杂度是 63.4 位,攻击成本大约为 4.5 万美元。一个 64 位安全强度的密码算法,它现在的破解成本大概是 5 万美元左右
2020-11-27 11:31:01
4697
1
原创 极客时间-实用密码学-2单向散列函数
单向函数正向计算容易,反向计算困难的函数散列函数任意长度的数据都能映射到固定长度数据的函数单向散列函数既是单向函数又是散列函数,满足:逆向运算困难构造碰撞困难雪崩效应输入数据的微小变化就会造成出输出数据的巨大变化严格的定义:输入数据的一位反转,输出数据的每一位都有50%的概率发生变化怎么解决数据完整性问题通过对应的散列函数计算数据的散列值与原散列值对比,相同表示数据未发生变化,否则数据已发生过修改...
2020-11-25 09:12:34
2873
原创 Nexus 2.14 安装及升级到nexus-2.15.1-02
系统环境:CentOS 7.50、将nexus-2.14.12-02.tar.gz 解压到/usr/local目录下tar -xzf nexus-2.14.12-02.tar.gz -C /usr/local1、创建用户以及用户组nexususeradd -U nexus2、修改目录权限 chown -R nexus:nexus nexus-2.14.12-02 chown -R nexus:nexus nexus chown -R nexus:nexus sonatype-work
2020-11-07 00:01:53
1351
原创 重学Android之事件分发机制
通过本文了解Android中触摸事件在视图层次中的分发流程以及多点触控时系统的处理方式。通过分析源码的方式初步建立UI系统中处理事件的基本思路,为以后自己设计UI系统时做参考。同时也为开发Android自定义控件时处理复杂事件提供理论基础。前置条件: 有一定的Android开发经验源码版本: android 10在开始之前先思考几个问题:事件在视图层级中分派流程是怎样的什么时机确认事件被某一View处理如何记录事件应该分派到哪一个View多点触控时如何处理事件分派什么情况下View会收到A
2020-09-24 10:23:42
346
原创 androidx ViewModel 生命周期如何与Activity/Fragment生命周期关联
通常我们在Activity/Fragment中创建ViewModel使用如下方式:NameViewModel nameViewModel=new ViewModelProvider(this).get(NameViewModel.class);其中ViewModelStore对象由Activity/Fragment提供,并且在Activity/Fragment销毁时调用ViewModel的clear方法那Activity、Fragment如何创建ViewModelStore的呢?让我我们一起来看看
2020-08-31 16:29:13
8928
原创 JNI 中jstring转utf8
JNI 中jstring转utf8在java中通过GetStringUTFChars获取的char*是修改后的utf8字节数组,可以采用如下方式转换为标准的utf8编码 参见Getting true UTF-8 characters in Java JNIJNIEXPORT void JNICALL Java_EmojiTest_nativeTest(JNIEnv *env, jclass c...
2019-12-17 11:08:28
912
原创 读写锁ReentrantReadWriteLock性质
读写锁ReentrantReadWriteLock性质一、性质1、支持锁的降级,在写锁释放前降级为读锁2、不支持锁的升级,由读锁升级为写锁将会失败3、写锁支持ReentrantLock.newCondition,读锁不支持,将会抛出异常UnsupportedOperationException锁的降级测试代码 System.out.println("Enter"); ...
2019-10-30 15:23:56
126
原创 9、ffplay音频的波谱图及频谱图源码分析
ffplay音频的波谱图及频谱图源码分析当ffplay指定启动参数-showmode [0/1/2]时,值为0,正常播放(默认);值为1,显示波形;值为2,显示频谱图。在ffplay中由show_mode变量控制显示方式取值分别为:SHOW_MODE_VIDEO/SHOW_MODE_WAVES/SHOW_MODE_RDFT在函数video_display(…)中判断是否有音频流并且show_...
2019-10-23 14:43:56
1959
原创 8、ffplay字幕解码及渲染源码分析
ffplay字幕解码及渲染源码分析字幕解码逻辑static int subtitle_thread(void *arg){ VideoState *is = arg; Frame *sp; int got_subtitle; double pts; for (;;) { if (!(sp = frame_queue_peek_writ...
2019-10-23 14:43:22
463
原创 7、ffplay视频渲染模块
ffplay视频渲染模块源码分析main函数中,在stream_open(…)之后调用event_loop()不断的从SDL中查看是否有SDL事件发生,如果有事件发生就取出事件处理,否循环从pictq队列中取出AVFrame渲染到屏幕上。static void refresh_loop_wait_event(VideoState *is, SDL_Event *event) { do...
2019-10-23 14:42:55
595
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人