<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dodod2012的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dodod2012</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dodod2012]]></copyright><item><title><![CDATA[Build sandboxing disabled due to nsjail error]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/156082697</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/156082697</guid><author>dodod2012</author><pubDate>Fri, 19 Dec 2025 14:44:13 +0800</pubDate><description><![CDATA[⚠️ 注意：此参数会赋予容器接近主机root的权限，需确保镜像来源可信。]]></description><category></category></item><item><title><![CDATA[Ubuntu24.04.3执行sudo apt install yarnpkg 命令失败的原因]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/156057788</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/156057788</guid><author>dodod2012</author><pubDate>Thu, 18 Dec 2025 16:24:16 +0800</pubDate><description><![CDATA[Yarn 依赖于 Node.js，但系统可能未安装或版本不兼容。根据您提供的错误信息，sudo apt install yarnpkg 命令失败的原因是依赖项未满足。执行命令：执行 yarnpkg --cwd  vendor/adevtool/ install。好了，升级完了，再次执行yarnpkg --cwd。4. ‌使用 npm 安装 Yarn（备选方案）‌。# 安装 Node.js（建议 LTS 版本）2. ‌安装缺失的 Node.js 依赖‌。3. ‌重新安装 Yarn‌。]]></description><category></category></item><item><title><![CDATA[在 Ubuntu 中将新硬盘挂载到 /home /work目录下]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/155611212</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/155611212</guid><author>dodod2012</author><pubDate>Fri, 05 Dec 2025 16:15:03 +0800</pubDate><description><![CDATA[但在 SSD/NVMe 等热插拔场景中建议使用 UUID。也可以通过系统自带的磁盘工具查看是否挂载成功。如果你的硬盘已有分区，请选择具体分区（如。重启系统后检查是否成功挂载。]]></description><category></category></item><item><title><![CDATA[Ubuntu 24.04 LTS 使用清华大学的 Ubuntu 镜像源以加速下载和更新操作]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/155610271</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/155610271</guid><author>dodod2012</author><pubDate>Fri, 05 Dec 2025 15:10:47 +0800</pubDate><description><![CDATA[在 Ubuntu 24.04 之前，Ubuntu 的软件源配置文件使用传统的 One-Line-Style，路径为。从 Ubuntu 24.04 开始，Ubuntu 的软件源配置文件变更为 DEB822 格式，路径为。将系统自带的对应文件做个备份，然后根据格式的选择下面对应的内容替换，即可使用选择的软件源镜像。# 以下安全更新软件源包含了官方源与镜像站配置，如有需要可自行修改注释切换。# 以下安全更新软件源包含了官方源与镜像站配置，如有需要可自行修改注释切换。# 预发布软件源，不建议启用。]]></description><category></category></item><item><title><![CDATA[Go之Walk框架详解]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/148761103</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/148761103</guid><author>dodod2012</author><pubDate>Thu, 19 Jun 2025 14:47:50 +0800</pubDate><description><![CDATA[在最近的开发过程中，我需要使用 Golang 完成数据处理任务。为了避免重复工作，并且考虑到同事也有类似需求，我决定利用 Walk 框架构建一个可视化的可执行程序，以提高工作效率。]]></description><category></category></item><item><title><![CDATA[Android录制视频，三种Camera的使用与预览及其简单封装]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/147412480</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/147412480</guid><author>dodod2012</author><pubDate>Tue, 22 Apr 2025 15:19:22 +0800</pubDate><description><![CDATA[本文对于常见的三种 Camera API 做了示例代码及其对于分别进行封装。对于使用哪一种 Camera 实现效果，大家可以自行选择。如果我想要回调 NV21 的数据，其实我会选择 Camera1 ,因为它本身返回就是这个格式不需要转换，如果我想要回调 I420 格式，我会选择 Camera2 或 CameraX ，反正需要转换，他们更方便，特别是配合 libyuv 库，效率会更高。如果想实现录制视频的功能呢？如果是普通的录制我会选择 CameraX 自带的录制视频功能，更加的简单方便。]]></description><category></category></item><item><title><![CDATA[AhMyth-Android-RAT远控功能及通信模型剖析]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/145324616</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/145324616</guid><author>dodod2012</author><pubDate>Thu, 23 Jan 2025 15:40:29 +0800</pubDate><description><![CDATA[最近，笔者大概回顾了一下，发现写技术文章也有一段时间了，前前后后也是写了近30篇文章，文章内容也是涉及了Windows平台木马、Linux平台木马的通信模型剖析、通信数据解密、攻击场景复现等。虽然写了不少文章，但笔者心里始终感觉文章的面少了Android端木马的剖析，其实之前也尝试过想将Android端木马也像Windows、Linux平台一样研究，但却始终没有找到比较好的案例样本。基于网络调研简单查找了一下关于此开源远控的利用情况，发现在APT攻击利用场景中，确实有不少APT组织会使用此开源远控。]]></description><category></category></item><item><title><![CDATA[Connection timed out: connect. If you are behind an HTTP proxy,please configure the proxy settings]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/145132473</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/145132473</guid><author>dodod2012</author><pubDate>Tue, 14 Jan 2025 10:27:32 +0800</pubDate><description><![CDATA[还有可能会出现下面的报错Unknown host 'services.gradle.org'. You may need to adjust the proxy settings in Gradle. 让我们配置Gradle中的代理设置。找到gradle配置文件 gradle-wrapper.properties ，可以看到当前gradle的版本，我这里是gradle-5.4.1-all.zip【大家可以根据自己的版本进行下载】报错的原因是：这个是国外的网站，访问不到或网速很慢下载不下来。]]></description><category></category></item><item><title><![CDATA[JNI中GetStringUTFChars/ReleaseStringUTFChars]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/142337309</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/142337309</guid><author>dodod2012</author><pubDate>Wed, 18 Sep 2024 16:42:00 +0800</pubDate><description><![CDATA[的 C/C++ 字符串指针。该指针指向一个以 null 结尾的 UTF-8 编码的字符串。上面的printf在jni里不能打印，看不见日志，自行替换成Androidlog。当您不再需要使用该指针时，必须调用。字符串的 C/C++ 字符串指针的函数。函数有两种方式获取 Java 字符串。函数来释放它，否则会导致内存泄漏。函数用于获取 Java。]]></description><category></category></item><item><title><![CDATA[MediaCodec硬编码pcm为aac音频]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/142201367</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/142201367</guid><author>dodod2012</author><pubDate>Fri, 13 Sep 2024 09:24:13 +0800</pubDate><description><![CDATA[工作原理：其内部有2个队列，一个是输入队列，一个是输出队列。提供的一个多媒体硬解编码库，能实现音视频的编解码。的新数据，可以直接处理或保存到文件中。解码前的原始数据存储，并输送给。输出队列负责存储编解码后。]]></description><category></category></item><item><title><![CDATA[OpenSLES创建播放器pAudioSrc: data format 2 not allowed的情况]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/141718305</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/141718305</guid><author>dodod2012</author><pubDate>Fri, 30 Aug 2024 14:53:10 +0800</pubDate><description><![CDATA[而代码编译的时候都是正常的，在我们跑到初始化播放器的时候：CreateAudioPlayer()返回的参数是不成功的。数据格式2不允许" -拒绝SL_DATAFORMAT_PCM?以上注释的代码就是错误的代码，下面的是更正的代码。]]></description><category></category></item><item><title><![CDATA[android里执行fopen失败]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/141717786</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/141717786</guid><author>dodod2012</author><pubDate>Fri, 30 Aug 2024 14:49:44 +0800</pubDate><description><![CDATA[在Android开发过程中，我们可能会遇到在Android平台上执行fopen函数失败的情况。fopen是C语言标准库中的一个函数，用于打开文件并返回一个指向文件的指针。然而，在Android平台上，由于其特殊的文件系统和权限管理机制，直接使用fopen可能会遇到一些问题。本文将通过代码示例和旅行图、序列图来详细解释这个问题，并提供解决方案。]]></description><category></category></item><item><title><![CDATA[Android严格模式]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/137018581</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/137018581</guid><author>dodod2012</author><pubDate>Mon, 25 Mar 2024 16:42:19 +0800</pubDate><description><![CDATA[（3）StrictMode是建立在BlockGuard和CloseGuard之上的机制，Guard表示守卫，Block表示阻塞，在进行一些耗时操作时，譬如磁盘读写、网络操作，有一个守卫在监测着，它就是BlockGuard，如果这些耗时的操作导致主线程阻塞，BlockGuard就会发出通知，Close对应可打开的文件，在文件被打开后，也有一个守卫在监测着，它就是CloseGuard，如果没有关闭文件，则CloseGuard就会发出通知。比如文件流未关闭，打印的日志提示如下，可根据堆栈找到导致问题的地方。]]></description><category></category></item><item><title><![CDATA[关于Android获取Usb设备权限]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/136846106</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/136846106</guid><author>dodod2012</author><pubDate>Tue, 19 Mar 2024 16:11:20 +0800</pubDate><description><![CDATA[3. 过滤别的USB设备，拿到自己USB的USBDevice类，然后请求USB权限，usbManager.requestPermission(usbDevice, pendingIntent);11.监听弹出权限对话框的onclick方法，如果点击的授权，那就在UsbPermissionActivity的onDestory里面回调最开始的广播，通知我们的应用，用户授予的权限。UsbService是它的实现类，所以最终是调用的UsbService的requestDevicePermission方法。]]></description><category></category></item><item><title><![CDATA[C++ 线程函数 pthread_create()]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/136713401</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/136713401</guid><author>dodod2012</author><pubDate>Thu, 14 Mar 2024 15:56:07 +0800</pubDate><description><![CDATA[这个示例代码创建了一个新线程，执行print_message函数，打印出传递给它的字符串。在主线程中，我们调用pthread_join函数等待新线程执行完毕。pthread_create是C++中的一个函数，它用于创建一个新的线程。这个函数可以在不同的操作系统中使用，因为它是基于POSIX标准的。start_routine：线程函数的指针，新线程会从这个函数开始执行。attr：指向线程属性的指针，NULL表示使用默认属性。thread：指向线程标识符的指针，由函数返回。arg：传递给线程函数的参数。]]></description><category></category></item><item><title><![CDATA[Android Studio Error “Unsupported class file major version 61“---异常信息记录]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/135529508</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/135529508</guid><author>dodod2012</author><pubDate>Thu, 11 Jan 2024 14:57:06 +0800</pubDate><description><![CDATA[Unsupported class file major version 61]]></description><category></category></item><item><title><![CDATA[FileInputStream(文件字节输入流)]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/134707496</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/134707496</guid><author>dodod2012</author><pubDate>Thu, 30 Nov 2023 15:12:09 +0800</pubDate><description><![CDATA[首先我们先看一下文件字节输入流。]]></description><category></category></item><item><title><![CDATA[Java 如何中断在 take() 上阻塞的 BlockingQueue？]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/134594204</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/134594204</guid><author>dodod2012</author><pubDate>Fri, 24 Nov 2023 11:10:13 +0800</pubDate><description><![CDATA[线程的代码，很常见，当服务停止时，如何停止被BlockingQueue阻塞的线程？，这将允许处理线程在等待一段时间而没有新输入时超时并终止。方案二：判断BlockingQueue是否未空，中断处理。优化方案：解决两个问题。]]></description><category></category></item><item><title><![CDATA[BlockingQueue（阻塞队列）详解]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/134445381</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/134445381</guid><author>dodod2012</author><pubDate>Thu, 16 Nov 2023 16:49:38 +0800</pubDate><description><![CDATA[在新增的Concurrent包中，很好的解决了多线程中，如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类，为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员，包括他们各自的功能以及常见使用场景。]]></description><category></category></item><item><title><![CDATA[安卓播放解码后的byte字节视频]]></title><link>https://blog.youkuaiyun.com/dodod2012/article/details/134424024</link><guid>https://blog.youkuaiyun.com/dodod2012/article/details/134424024</guid><author>dodod2012</author><pubDate>Wed, 15 Nov 2023 16:51:04 +0800</pubDate><description><![CDATA[Android 音视频播放SDK，几句代码即可实现音视频播放功能（支持：手机、电视盒子等设备。支持：http、https、rtsp、rtp、rtmp、byte[]、加密视频和各种文件格式视频；包含视频截图、音轨选择、字幕选择、循环播放、设置软解或硬解、自定义视频滤镜、透明视频、变速变调、声道切换、无缝切换surface（surfaceview和textureview）、视频比例设置、多路音视频播放等。]]></description><category></category></item></channel></rss>