1.FartExt超进化之奇奇怪怪的核源新ROM工具MikRom
2.在谷歌云上高速编译安卓AOSP ROM、驱动、源码内核并完成刷机
3.谷歌Pixel 5真的核源出现在Android源代码中了吗?
4.一加7/7 Pro的内核源代码公布后,开发者能立即制作出定制ROM吗?
5.UE中的着色器编程-需要重新编译内核自己生成UE
6.Android对内核有什么要求吗?还是随便是个Linux kernel都可以跑Android?
FartExt超进化之奇奇怪怪的新ROM工具MikRom
本文为看雪论坛优秀文章
在对ROM进行深入定制的探索中,作者分享了自己开发的源码两款工具:FartExt和MikRom。FartExt是核源一个自动脱壳机,基于FART主动调用的源码下载源码代码岛思想,对特定的核源抽取壳进行优化处理。其核心功能是源码对FART进行简单优化,但由于当时实现功能并不完善,核源只短暂提供下载地址后便删除。源码现在,核源FartExt的源码开源代码已发布在GitHub上。
随着对ROM定制的核源深入思考,作者尝试将FartExt的源码原理应用到更广泛的场景,例如构建ROM级别的核源打桩工具,或通过应用读取配置文件实现网络流量拦截、JNI函数调用追踪等功能。基于这些想法,MikRom应运而生。MikRom提供了一系列功能,包括内核修改、USB调试默认连接、脱壳(支持黑名单、白名单过滤、主动调用链优化)、ROM打桩、frida持久化、反调试、Java函数trace、内置dobby注入、so和dex注入等。源码开后门目前,MikRom的开源代码在GitHub上发布。
为了使MikRom的配置管理更方便,作者开发了一个界面化的工具MikManager,允许用户通过图形界面进行操作。MikManager将设置保存到文件中,MikRom在启动时读取并解析这些设置。MikManager界面简洁,如有需要,用户也可自行开发界面管理工具。
开发MikRom及其相关工具是一项耗时而复杂的工作,作者记录了整个开发历程,分享了在试错过程中找到的解决方案。在功能实现和界面设计上,作者表示仍存在不足,欢迎其他开发者指出错误或提供改进意见。在考虑法律和风险问题时,作者表示愿意进行修改。
在ROM编译版本的选择上,作者最初使用了aospr2源码进行修改编译。后有建议改进界面,于是参考hanbingle老师的Fart脱壳王使用的rom,选择了PixelExperience进行修改。编译时遇到了错误,需要对build文件进行调整。最终,作者使用了marlin版本进行编译,并在pixel XL上测试。
在配置管理优化方面,早期的源码飞翼FartExt配置文件存储在/data/local/tmp中,由应用启动过程解析。然而,随着配置管理的复杂性增加,作者引入了一个系统服务来管理配置文件,将文件落地到/data/system目录中,供所有应用访问。这解决了不同应用访问配置文件的权限问题。
了解更多详情,请阅读:FartExt超进化之奇奇怪怪的新ROM工具MikRom
在谷歌云上高速编译安卓AOSP ROM、驱动、内核并完成刷机
感谢肉丝大佬文章 anquanke.com/post/id/... 乌师傅 谷歌云和驱动的建议 众多翻阅过的博客文章
选择服务器时,可能遇到配额不够的问题。点击申请配额,然后提交申请,等待配置完成。
同步源码时,可以选清华或谷歌源。若操作于谷歌云,则使用谷歌同步源码。指定版本同步时,注意输入y并选择正确的版本。Pixel对应Android 的tag是android-.0.0_r2,build id为QP1A..。确保版本无误,避免后续刷机失败。
htop显示多个cpu运转,cpu使用率为0表示同步完成。
下载驱动,忽略此步骤若无需刷机。Pixel机型对应QP1A..的豹子号源码驱动下载并解压,生成vendor文件夹,内容需复制至AOSP源代码目录。
编译AOSP源码需安装OpenJDK 8,避免使用非SUN JDK1.8导致的编译错误。遇到问题时,执行特定命令初始化编译环境。等待编译,个cpu的谷歌云环境下,编译时间只需几分钟。
编译完成后,系统镜像位于当前目录的out/target/product/sailfish/下。
编译内核,当前版本为3.,分支为gdce。选择内核版本,切到对应分支,开始编译。编译完成后,文件位于指定位置。
刷机编译过程需耐心,重要的是编译速度。谷歌云提供+的cpu,加快编译。源码编译问题多由环境依赖引起,耐心解决。
总结,刷机编译耗时两天,遇到诸多坑点。关键在于编译速度。谷歌云的编程源码教学高cpu配置有助于加速编译过程。环境依赖问题需细心排查,耐心解决。
谷歌Pixel 5真的出现在Android源代码中了吗?
谷歌Pixel 5的秘密信号:新线索揭示发布时间? 几天前,关于Google Pixel 5 XL的渲染图泄露,引发了外界对其发布的猜测。然而,新的发现似乎提前揭示了 Pixel 5 的登场时间。据Gadgets 报道,令人惊讶的是,在 Android 开源项目(AOSP)的最新提交中,出现了“Pixel 5”这一名称的踪影。 一位开发者在测试AOSP新改动时提到,他们尝试在Pixel 4上对4.内核版本进行测试,却遭遇了问题。然而,在切换到Pixel 5上预设的4.内核版本时,他们并未进行相同的测试。这一细节暗示了Pixel 5可能已经进入了开发者的视野,尽管如此,我们还不能急于下定论,毕竟一切仍需等待官方证实。 谣言与现实的界限:年初的期待 尽管存在这样的线索,但我们不能忽视的是,Google通常不会急于在年初发布新设备。即使开发者已经开始在Pixel 5上进行内部测试,它可能依然被安排在更晚的时间段。毕竟,对于那些期待第一时间体验新功能的用户来说,Google Pixel 系列总是能带来惊喜,但也有其他像Nokia 7.2这样的选择,对于寻求稳定体验的消费者来说,是一个更为实际的选择。 总的来说,虽然 Pixel 5 的存在似乎在AOSP中得到了间接确认,但确切的发布日期仍然笼罩在迷雾中。我们只能静候佳音,看Google何时才会揭开Pixel 5的神秘面纱。一加7/7 Pro的内核源代码公布后,开发者能立即制作出定制ROM吗?
一加7/7 Pro的内核源代码揭秘
一加新发布的7系列手机中,一加7作为一加6T的升级版,配备了骁龙处理器和优化的相机传感器,虽有小改进,但主要焦点落在了另一款旗舰——一加7 Pro上。这款手机凭借其QHD无缺口Hz显示屏、GB大内存和三摄像头,意欲在竞争激烈的市场中与三星Galaxy S、华为P Pro和iPhone XS Max分庭抗礼。
最新进展是,一加7和一加7 Pro的内核源代码已经揭开神秘面纱,这对于热爱自定义手机体验的开发者来说,意味着他们可以利用这些源代码为基础,如LineageOS和Pixel Experience等AOSP定制ROM进行开发,甚至定制内核。然而,值得注意的是,这些定制版本并不会立即出现在论坛上,因为开发工作需要时间来完成和测试。
总的来说,我们满怀期待地等待着开发者们的巧手为这两款新机带来更为出色的个性化体验。
UE中的着色器编程-需要重新编译内核自己生成UE
全球图形学领域的教育和研究者,东汉书院,致力于提供深入的技术教学和视频,帮助用户构建图形学知识体系。在这里,用户能获得全面的代码知识,以及背后故事的理解,避免盲目学习。书院提供深入剖析UE的课程,帮助有兴趣自研引擎的用户。UE源码版本为4.,为了简化学习,我们将切换至移动端渲染模式。
具体操作如下:
1. 修改Engine/Source/Runtime/Engine/Classes/Engine/EngineTypes.h文件,添加名为MSM_Alice的ShadingModel。
2. 修改Engine/Source/Runtime/Engine/Private/Materials/HSLSMaterialTranslator.cpp文件,在GetMaterialEnvironment函数中添加代码。
3. 修改Engine/Source/Runtime/Engine/Private/Materials/MaterialShader.cpp文件,扩展GetShadingModelString函数。
4. 编写shader代码,修改Engine/Shaders/Private/MobileBasePassPixelShader.usf文件,将材质球颜色固定,完成PostProcessing操作。最后创建材质球,选择Alice作为ShadingModel。
经过上述操作,UE将渲染出一个独特的材质球。完成此步骤后,用户将获得一个UE难以相信的渲染成果,仿佛在对UE表达不信任与讽刺。接下来,书院将提供更多高级内容,帮助用户参考UE,自行开发引擎。
东汉书院关注引擎底层技术和商业化信息,适合具有一定基础的用户。关注“图形之心”公众号了解企业信息和动态,“内核观察”公众号则提供独立的咨询与文章。书院致力于提供深入的技术教学和视频,帮助用户构建图形学知识体系,提升对底层技术的理解,最终实现自研引擎的目标。
Android对内核有什么要求吗?还是随便是个Linux kernel都可以跑Android?
Android对内核的要求并非随意,而是与Linux kernel的兼容性和定制化紧密相关。作为操作系统的核心组件,Android内核并非所有Linux内核都能胜任,特别是对于驱动芯片、处理器启动和硬件设备的管理。以高通ARM手机芯片为例,其内核选择往往依据芯片特性和谷歌的需求。 高版本的Linux kernel,如4.9.y,由于优化了代码结构,减少了核心体积,设计理念更先进,被高通采用作为longterm分支。比如,高通芯片就使用了这一版本,并结合了安卓通用内核android-4.9-x,作为其基础的板级支持包(BSP)。 内核版本的选择通常由芯片厂商主导,Android通用内核与上游的longterm线有着密切的关系。高通在芯片研发初期就以最新的longterm版本作为基础,如caf系列,它们倾向于在芯片点亮后迅速整合安卓内核的源码。 然而,Android内核并非单纯依赖Linux kernel,谷歌有自己的定制化需求,例如交互式CPufreq调节器,MTP/PTP功能等。这些功能由于特定原因不能直接提交到Linux kernel,因此在安卓内核中实现。另一方面,一些供应商和OEM特有的功能,如sdcardfs,也通过这种方式为Android设备提供支持。 尽管理论上任何Linux内核理论上可以尝试运行在Android设备上,但对于专业内核开发者来说,这需要高度的适配和调试。例如,某开发者尝试将Nexus 5的内核升级到4.4内核版本,但这样的工作涉及到大量的补丁移植和调试,且需要对芯片架构有深入理解。 Android内核版本号的重要性不言而喻,从3.4.x到 Pie的升级,内核主要驱动硬件设备,但新功能如FBE文件级加密、SELinux和EAS调度等,需要更高级别的内核版本才能实现。Oreo引入的sdcardfs文件系统,开发者们会将其从高版本内核移植到低版本,以优化旧设备的性能。 安卓版本的特性与内核版本兼容性密切相关。例如,Android Pie要求的内核优化可能在旧设备上无法实现,如安全性和稳定性。随着AOSP的不断发展,设备树blob的处理方式也在变化,这进一步强调了内核版本的必要性。 对于安全问题,Google非常重视,定期发布针对安卓内核的CVE分支,并在像Pixel这样的设备上启用CFI编译。随着内核版本的演进,4..y以下的内核已不再受安卓通用内核的支持,这意味着安全更新和新功能的兼容性要求更高。 综上所述,Android对内核的需求并非随意选择,而是经过精心设计和定制,以确保兼容性、性能和安全性的完美结合。每个版本的Android都对应着特定的内核版本,以适应不断变化的技术需求和安全标准。