<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fightingup]]></title><description><![CDATA[一个老鸟的积累之路]]></description><link>https://blog.youkuaiyun.com/fightingup</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fightingup]]></copyright><item><title><![CDATA[高通源码下载]]></title><link>https://blog.youkuaiyun.com/fightingup/article/details/131747447</link><guid>https://blog.youkuaiyun.com/fightingup/article/details/131747447</guid><author>fightingup</author><pubDate>Sun, 16 Jul 2023 10:09:25 +0800</pubDate><description><![CDATA[高通开源源码下载]]></description><category></category></item><item><title><![CDATA[使用gdb调试android用户态代码]]></title><link>https://blog.youkuaiyun.com/fightingup/article/details/131371268</link><guid>https://blog.youkuaiyun.com/fightingup/article/details/131371268</guid><author>fightingup</author><pubDate>Sun, 25 Jun 2023 10:25:22 +0800</pubDate><description><![CDATA[如图，windows上运行虚拟机，虚拟机中安装linux系统，主要用于android 系统编译调试环境。至于为什么要这样搞，而不直接在windows上运行gdb程序是因为运行于设备上的gdbserver要和运行于调试pc上的gdb要配套。而目前windows上gdb编译的程序往往是很老的。但是linux环境下的gdbserver和gdb程序是和android编译环境完全匹配的，并且已经预制在android源代码中了（具体位置可以在prebuilts/gdb下找到）。]]></description><category></category></item><item><title><![CDATA[Android按键亮屏之旅]]></title><link>https://blog.youkuaiyun.com/fightingup/article/details/129461064</link><guid>https://blog.youkuaiyun.com/fightingup/article/details/129461064</guid><author>fightingup</author><pubDate>Wed, 22 Mar 2023 18:53:50 +0800</pubDate><description><![CDATA[生活中有许多我们习以为常的事情，然而其中的细节往往为我们所忽略。今天，我们将深入探讨 Android 设备从按键到屏幕点亮的一系列过程，以期更好地理解它们的实现方式。注：本文所参考的源代码基于 Android-13.0.0_r3 和 MTK 平台。]]></description><category></category></item><item><title><![CDATA[RCU设计]]></title><link>https://blog.youkuaiyun.com/fightingup/article/details/129629604</link><guid>https://blog.youkuaiyun.com/fightingup/article/details/129629604</guid><author>fightingup</author><pubDate>Fri, 17 Mar 2023 22:35:06 +0800</pubDate><description><![CDATA[显然让替换立刻生效来实现 RCU 的方式，只能说你创造了一个新的同步机制，但它永远也不会有人用。那么为了能超过 rwlock 的性能，一方面不能做读者与写者之间的锁同步，从而让 RCU 能在特定场景下有性能优势，另一方面，如果不做锁同步，那就意味着读者不知道写者什么时候更新，写者也不知道更新时是否存在读者，唯一的方案是：即使 writer 在更新完之后，reader2 读取的依旧是 D1 的旧数据(因为 reader2 不知道数据有更新)，而更新完之后新来的读者读到的自然是新数据。]]></description><category></category></item><item><title><![CDATA[虚拟机中通过模拟器调试android kernel]]></title><link>https://blog.youkuaiyun.com/fightingup/article/details/129133656</link><guid>https://blog.youkuaiyun.com/fightingup/article/details/129133656</guid><author>fightingup</author><pubDate>Mon, 20 Feb 2023 23:02:30 +0800</pubDate><description><![CDATA[也可以通过修改device\generic\goldfish\x86_64-kernel.mk文件中KERNEL_MODULES_PATH和 EMULATOR_KERNEL_FILE将kernel和kernel ko加入到emulator镜像中重新编译aosp系统，而无需定制emulator的启动命令。虚拟机安装ubuntu（此处略），需要注意的是虚拟机要开启嵌套虚拟化（即在虚拟机中再次使能虚拟化功能）可使用国内镜像源替换android源(git config --global url.]]></description><category></category></item><item><title><![CDATA[qemu调试linux内核]]></title><link>https://blog.youkuaiyun.com/fightingup/article/details/128906416</link><guid>https://blog.youkuaiyun.com/fightingup/article/details/128906416</guid><author>fightingup</author><pubDate>Mon, 06 Feb 2023 19:05:36 +0800</pubDate><description><![CDATA[有了qemu后我们可以使用一台电脑就能模拟出多种cpu架构的单板，不需要去进行重复复杂的编译烧写调试工作了，提高开发的效率。]]></description><category></category></item><item><title><![CDATA[android 模拟器运行arm镜像]]></title><link>https://blog.youkuaiyun.com/fightingup/article/details/128854620</link><guid>https://blog.youkuaiyun.com/fightingup/article/details/128854620</guid><author>fightingup</author><pubDate>Thu, 02 Feb 2023 18:29:26 +0800</pubDate><description><![CDATA[按照提交注释是说apilevel > 28，就是新的android 9.0及以后版本上不在支持host和guest (android)不匹配的情况，说白了就是x86上只能跑x86版本的android，arm机器上只能跑arm版本的android镜像。具体为什么也没有说，但是我想说这个限制完全和qemu设计的初衷不匹配了，qemu本就是支持在一个实体cpu上模拟出不同架构的cpu，对于需要针对cpu相关的调试可能就没办法用模拟器验证调试了。win10上安装了最新的android studio。]]></description><category></category></item><item><title><![CDATA[drm框架简介]]></title><link>https://blog.youkuaiyun.com/fightingup/article/details/128714257</link><guid>https://blog.youkuaiyun.com/fightingup/article/details/128714257</guid><author>fightingup</author><pubDate>Tue, 17 Jan 2023 13:44:46 +0800</pubDate><description><![CDATA[1、 DRM简介（Direct Rendering Manager）传统linux显示设备驱动开发时，通常使用FB驱动架构，随着显卡性能升级：显示覆盖（菜单层级）、GPU加速、硬件光标，传统FB架构无法很好支持，此外，对于多应用的访问冲突也无法很好控制。在这样的背景下，DRM应用而生。DRM是linux内核中负责与显卡交互的管理架构，用户空间很方便的利用DRM提供的API，实现3D渲染、视频解码和GPU计算等工作。]]></description><category></category></item><item><title><![CDATA[【转】自上而下解读Android显示流程]]></title><link>https://blog.youkuaiyun.com/fightingup/article/details/128697062</link><guid>https://blog.youkuaiyun.com/fightingup/article/details/128697062</guid><author>fightingup</author><pubDate>Sun, 15 Jan 2023 19:48:43 +0800</pubDate><description><![CDATA[假如没有这样一个模块，所有合成任务都将有GPU完成，则会带来性能与功耗的负担，GPU主要用于绘制，参与合成则会造成资源的浪费，特别是在10年前，GPU参与合成，性能会急剧下降——对于如今来说，并没有那么大影响了，基本顺手捎带着就完成了，如今的考虑主要在于功耗，GPU合成的效率太低了。这里的原则也是减小带宽。这是Android发展到2.0之后才出现的概念，算是SF的附属子模块，之前是运行在SF主线程的，如今改成单独的Service，这是Android的设计理念，效率其实是下降了，两个进程的交互是相当频繁的。]]></description><category></category></item><item><title><![CDATA[Windows上支持大小写敏感的目录文件]]></title><link>https://blog.youkuaiyun.com/fightingup/article/details/128693351</link><guid>https://blog.youkuaiyun.com/fightingup/article/details/128693351</guid><author>fightingup</author><pubDate>Sun, 15 Jan 2023 12:24:34 +0800</pubDate><description><![CDATA[unix上文件是区分大小写的，但是unix上不支持大小写，所以需要将windows目录转换为区分大小写的文件目录。需要目录所在分区是ntfs格式。新的目录必须初始的时候为空。安装powershell （]]></description><category></category></item><item><title><![CDATA[Android深入浅出之Binder机制]]></title><link>https://blog.youkuaiyun.com/fightingup/article/details/78494780</link><guid>https://blog.youkuaiyun.com/fightingup/article/details/78494780</guid><author>fightingup</author><pubDate>Thu, 09 Nov 2017 22:23:57 +0800</pubDate><description><![CDATA[一说明
 Android系统最常见也是初学者最难搞明白的就是Binder了，很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话，在很大程度上就能理解程序运行的流程。
我们这里将以MediaService的例子来分析Binder的使用：
l        ServiceManager，这是Android OS的整个服务的管理程序
l       ]]></description><category></category></item><item><title><![CDATA[zergRush 提权代码]]></title><link>https://blog.youkuaiyun.com/fightingup/article/details/78176759</link><guid>https://blog.youkuaiyun.com/fightingup/article/details/78176759</guid><author>fightingup</author><pubDate>Sun, 08 Oct 2017 19:36:22 +0800</pubDate><description><![CDATA[https://github.com/revolutionary/zergRush/blob/master/zergRush.c  
/* android 2.2/2.3 libsysutils root exploit use-after-free 
 * 
 * Exploited by rewriting a FrameworkCommand object making the runCom]]></description><category></category></item></channel></rss>