系统定制
文章平均质量分 88
疯人院的院长大人
喜欢学习研究。喜欢解各种疑难杂症,喜欢主动。研究领域:Android开发,性能优化,逆向开发,移动攻防。
展开
-
Aosp编译Pixel Rom并定制刷机包全解析
安卓源码编译刷机全教程下载安卓源码Repo工具的安装全部下载部分下载驱动下载文件系统编译刷机安卓源码编译刷机全教程作为一个标准的安卓程序猿,不会编译一个自己的安卓系统有点说不过去了,其中的好处不多说了,直接开搞吧! 首先我们得准备原材料:一台安装了linux系统的电脑一部nexus手机数据线有网络的网线下载安卓源码下载安卓源原创 2017-07-14 14:52:45 · 7048 阅读 · 2 评论 -
Android init.rc语言全解析
读懂init语言并不难,难的是有人愿意去做这个事情然后分享出来,如果不是接触到这块的知识,没有谁会专门研究这个,这也是为什么我写第一篇initrc文章到现在过去了7年多了一直没更新的原因,经常有小伙伴私信我希望我写一篇关于init文件解读的文章,或者是想请教下如何在custom的rc文件中加入自己的服务,当然有心的人肯定自己已经整明白了,因为所有的知识都是现存的,用心的小伙伴都能在网上找到。还没整明白的小伙伴也没关系,看完这篇文章你也可以摸索着自己做实现了。原创 2022-09-28 13:31:01 · 776 阅读 · 0 评论 -
编译定制magisk和Lsposed并刷入定制的hook框架(一)
玩Github不能局限与使用人家的api以及下载别人的开源库,更要学会如何定制修改大神的开源库,因为大神们的开源库里面能学到的东西很多,如果不去深入了解,会错失很多学习的机会,就像我们做安卓的,如果会看谷歌源码,成长速度也会比别人快很多。............原创 2022-08-11 17:54:12 · 2271 阅读 · 0 评论 -
手把手教你Magisk安装
Magisk 是一套用于定制 Android 的开源软件,支持高于 Android 5.0 的设备。也就是,用户通过MagiskBoot 重新打包Boot.img,然后通过fastboot刷入boot分区,这个时候就具有了Root权限(MagiskSU会协助管理SU),用户可以开发Magisk插件以实现只读分区的修改(因为有Root),同时能够把我们写的代码附着到任意App(在应用进程被fork出来的时候添加上去)。这篇文章就和大家来聊聊如何刷入Magisk。......原创 2022-08-11 17:40:48 · 7620 阅读 · 0 评论 -
Android安全专题(一)Hook初探以及技术前世今生
Hook概念Hook是伴随操作系统的产生而出现的概念,原来是系统开发者提供给系统应用开发者方便管理系统而产生的概念。目的是在系统调用过程中,其他代码可以选择性的干预系统函数的处理逻辑,已达到更灵活的程度。其实不管是windows还是Linux,底层进行事件分发处理使用的都是消息机制,为什么要使用消息机制,这个和操作系统的演化有关。操作系统最开始出现的时候功能很单一,仅仅是用于计算,而且还不是并行计算(并行计算发生在中断概念提出之后)。就是一个单一的流程,大家可以类比一下流水线,从流水线的一端到另一端,操原创 2022-04-14 19:07:46 · 3350 阅读 · 0 评论 -
Android调用系统界面冷知识
起源:在开发中需要跳转到WIFI列表,因是自定Lancher - 跳转之后发现无法返回当前APP,针对于此,在总结Wifi跳转的同时一起总结了系统自带的功能跳转 ~开发了一款定制的Launcher,要求全屏。有一个地方需要选择wifi,图方便我想用系统的。但是发现无法返回于是有了如下的研究,以下内容来自网络,并非原创,已用华为手机可用,其他系统类似,是系统提供的功能,大家可自行研究。已知的所有设置;action界面ACTION_SETTINGS系统设置界面ACTION_APN_SETTINGSA.转载 2021-10-21 08:51:02 · 320 阅读 · 0 评论 -
【手册】如何编译/修改三星手机Rom(四)
上一篇文章《【手册】如何编译/修改三星手机Rom(三)》介绍如何在三星Rom上做一些基本的修改,这篇文章接上一篇文章,介绍如何更新脚本语法和将外部功能添加到ROM。本节是制作ROMS 最有趣的部分(反正我是这么觉得),这节的重点是updater-script。接上文,我们进入到“工作/ META-INF / COM /Google/ Android”的目录,在那里你会看到两个文件,即,“更新脚本”和“更新二进制”。接下来,我将首先向您介绍什么是更新程序脚本,其本质是什么,以及为何它在ROM 开发中如此有翻译 2020-06-04 11:32:36 · 1648 阅读 · 0 评论 -
【手册】如何编译/修改三星手机Rom(三)
上一篇文章[《【手册】如何编译/修改三星手机Rom(二)》](https://blog.csdn.net/zhonglunshun/article/details/83544852#comments)介绍如何打包三星Rom,这篇文章接上上一篇文章,介绍如何在三星Rom上做一些基础的mod。翻译 2020-06-04 11:15:59 · 2517 阅读 · 0 评论 -
Android系统启动流程(二)
这篇文章接着上一篇文章讲解《Android系统启动流程(二)》有兴趣的朋友可以返回去看一下,有个大概的印象总是好的;这篇文章是对上篇文章的详细解说;第一步:启动电源以及系统启动当电源按下,引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序到RAM,然后执行。第二步:引导程序引导程序是在Android操作系统开始运行前的一个小程序。引导程序是运行的第一个程序,因此它是针对特定的主板与原创 2017-11-23 14:51:00 · 2324 阅读 · 1 评论 -
Android源码树中实现代码混淆
既然聊到了代码混淆我们来看看怎么样在源码树中实现代码混淆呢?寻找线索其实我是不知道源码树中那个工程使用了混淆的,那么怎么办呢?求助linux查找指令:要想知道混淆怎么用的,我们可以从build下的所有mk文件中寻找答案。因为我们知道混淆是和mk文件相关的。怎么找呢? source_5.1/build$ find -name ‘*.mk’|xargs grep ‘LOCAL_PROGUARD_EN原创 2017-08-30 18:17:52 · 3020 阅读 · 0 评论 -
修改Android源码5.0开机横屏
简单点就是这样:1.修改frameworks\base\core\res\res\values\config.xml中config_lidOpenRotation的值为90。2.修改frameworks\base\services\core\java\com\android\server\wm\WindowManagerService.java中: int mRotation = 1;3.转载 2017-08-09 15:51:32 · 3061 阅读 · 0 评论 -
修改NavigationBar后横屏崩溃
修改SystemUI并编译参照这篇文章: http://blog.csdn.net/zhonglunshun/article/details/70256734因为公司做的系统需要横屏,因此当我切换到横屏的时候一直报空指针,大概意思就是我加进去的哪几个button找不到。开始的时候我以为是自己的代码写错了,但是检查好几遍也没有错误啊,上网也很少有这样的错误出现,无奈只能从报错的源头入手然后我检查竖屏原创 2017-08-09 11:59:33 · 2267 阅读 · 0 评论 -
修改framework后重新刷入手机
由于业务需求,需要修改SystemUI,在修改了SystemUI之后出现了各种问题,原本以为只要混滚SystemUI然后重新入到systemUI的根目录mm一下就行,没想到刷入到手机没有任何作用。经人指点是要把编译生成的framework-res.apk和framework.jar删除,然后重新生成,按照我以往逻辑,我只是修改了framework/base目录下的代码,只需要在该目录下mm一下就可以原创 2017-08-03 14:27:23 · 7593 阅读 · 0 评论 -
无线Adb的使用与禁用
如果不去深入学习,根本不会知道Adb也有这么多的学问。那我就一个个跟大家分享下我使用中遇到的问题吧。无线调试无线调试有好几种方法:adbwireless如果使用有线网络无法用adb connect命令连接设备的话,可以选择使用无线wifi来连接,最简单的当然是用adbwireless了。首先在Android设备上装一个叫做Adb Wireless的软件,打开wifi,然后打开adb wireless原创 2017-07-19 11:58:22 · 7507 阅读 · 0 评论 -
修改System.UI并编译
作为订制化的系统,我们有时候需要修改导航栏,在这里我们以修改导航栏图标为例,在导航栏添加安全卫士和语音助手的图标。具体实现:1.首先从安卓源码树中拿到SystemUI的原代码,位置在 \源码目录\frameworks\base\packages\SystemUI,我们把这个文件夹拷贝出来。 2.打开eclipse,导入拷贝出来的SystemUI源码,clean一下,我们发现有很多错误。 3.把f原创 2017-04-20 11:38:41 · 12259 阅读 · 4 评论 -
实现唯一Launcher
如果了解Android的启动流程的同学都知道,Zygote启动SystemServer,SystemServer的main函数开始启动各种服务。 首先启动init1,然后启动init2. init1这个方法是被Zygote调用来初始化系统的,init1会启动native的服务如SurfaceFlinger,AudioFlinger等等, 这些工作做完以后会回调init2来启动Android的se原创 2017-04-20 11:38:18 · 2501 阅读 · 0 评论 -
android系统源码中添加app源码(源码部署移植)
涉及到系统定制,需要在系统中加入自己的apk工程,但是上网找了很多资料都是不够全面的,或者看了还是没搞懂,我自己也是一点点摸索过来的,花了不少的时间,也是踩了不少的坑,因此特开一文,帮助大家渡河。申明,本文亲测有效,如果有疑问,欢迎在下方留言。人人为我,我为人人如需要深入了解make文件的编写和build系统,可以先看看这篇文章《Android系统源码Build入门详解》,本篇文章不对make文件进原创 2017-04-20 11:37:36 · 15590 阅读 · 15 评论 -
把apk安装包编译到system.img
make snod可以打包out/target/product/xxxx/system的内容并生成新的system.img文件1.源码编译后,把apk拷贝到out\target\product\generic\system\app中。 2.执行命令make snod , 把添加的apk编到system.img 中 缺点:执行make clean 后,再次make 完毕需要重新执行上面操作.ma原创 2017-04-20 11:37:00 · 1451 阅读 · 0 评论 -
m,mm,mmm区别
Android源码目录下的build/envsetup.sh文件,描述编译的命令m: Makes from the top of the tree. mm: Builds all of the modules in the current directory. mmm: Builds all of the modules in the supplied direc转载 2017-04-20 11:36:09 · 28587 阅读 · 0 评论 -
【手册】如何编译/修改三星手机Rom(一)
首先,以下内容来自xda论坛大神AndroidSword,写的《guide-how-to-develop-modify-roms》;本文是翻译,其中也会加入一些我的补充,AndroidSword大神在三星手机的定制方面不可谓不是大神或者专家了,至少他自己是这么理解的,国内基本没有像他这么详细又容易理解的惯有桑星rom定制的文章,基本都是一些很零散的,不成体系的文章;本篇文章介绍的是三星手机Not...翻译 2018-10-30 10:06:38 · 8187 阅读 · 4 评论 -
三星galaxyS9定制Rom入门教程
2017年中旬,谷歌宣布开启Project Treble计划,希望解决安卓手机碎片化的问题,有很多的良心厂商加入了该项目组,包括日本的三星,中国的一加;这是个什么概念呢?我们可以在三星的任何一款机器上面定制安卓原生系统,这对于对安卓手机有定制化需求的公司来说真是一件happy的事情;三星s9出来了,在国外的xda论坛已经有很多大神开始制作s9的rom包,但是国内的相关博客确实少之又少,可能现在做...原创 2018-10-11 17:55:01 · 6503 阅读 · 4 评论 -
横屏系统SystemUI导航栏按键不显示问题
先说下场景,公司做的是一个横屏的系统,之前使用的6735的代码,这个是竖屏手机的代码,但是被驱动工程师改成了横屏,因此开机当然是横屏的。但是右侧的虚拟按键死活显示不出来,只是显示了一条大黑边:为了使大家看得更明白点,我直接上图: 大黑条所在的位置应该显示的是虚拟按键,但是这里什么都没有;通过修改系统配置文件隐藏大黑条后则为全屏显示,黑条消失,但是还是看不到虚拟按键;我试过以下几种办法,都告失败:原创 2017-11-30 14:10:18 · 4201 阅读 · 1 评论 -
完美去掉大黑条!!Android 5.1修改导航栏背景颜色
现在很多手机都是用虚拟按键了,但是很多手机的虚拟按键的导航栏背景颜色是黑色的,看起来其丑无比啊,比如华为;要想看上去协调一些,当然是改成透明的啦,怎么改呢?按照以往的思路,当然是直接改布局文件就可以了的,想想这个思路也没错,布局文件位于 frameworks/base/packages/SystemUI/res/layout/navigation_bar.xml但素,我改了之后,发现这样是行不通的原创 2017-11-30 10:12:10 · 11456 阅读 · 2 评论 -
SystemUI启动流程
首先我们来看一个时序图: SystemServer前面的部分不再多说,有兴趣的朋友可以参考这篇博客《Android系统启动流程》SystemServer 名为系统服务进程,负责启动 Android 系统的关键服务。SystemServer进程其实也是由Zygote进程fork出来的,并且执行其main方法,那么这里我们以android23的源码为例,看一下SystemServer的main方法的执原创 2017-11-24 18:10:55 · 3870 阅读 · 0 评论 -
recovery下的init.rc语法解析
recovery下的init.rc语法解析原创 2017-11-24 15:47:49 · 7333 阅读 · 0 评论 -
Android系统init进程启动及init.rc全解析
这是一篇用心写的博客,也希望大家用心看并帮忙找到文章的改进之处,谢谢;服务启动机制system/core/init/init.c文件main函数中parse_config_file(init.rc)读取并解析init.rc文件内容。将service信息放置到system/core/init/init_parser.cpp的service_list中system/core/init/init.c文原创 2017-11-23 16:14:40 · 68914 阅读 · 16 评论 -
内核启动kernel_init(init)进程分析
在kernel进入c语言阶段后,会开始执行start_kernel函数,它负责进行kernel正式运行前各个功能的初始化:打印了一些信息、内核工作需要的模块的初始化被依次调用(譬如内存管理、调度系统、异常处理···),最后末尾调用了一个rest_init函数启动了三个进程(idle、kernel_init、kthreadd),来开启操作系统的正式运行。如下图所示: Linux下有3个特殊的进程,原创 2017-11-23 15:10:42 · 5042 阅读 · 0 评论 -
Android系统启动流程分析(一)
Android系统启动流程1,因为篇幅长,这一片为概要篇,给大家提供一个大体的全局印象,便于后面的学习;原创 2017-11-22 17:00:25 · 2833 阅读 · 2 评论 -
Framework之锁屏分析与禁用锁屏
产品开发过程有一个需求: 1. 按下电源键不锁屏,只关闭屏幕; 2. 用户仍然可以设置熄屏时间(到了设定的时间屏幕熄灭,按下电源键唤醒而没有锁屏);网上找了好几种禁用锁屏的方法,都不管用,为了方便广大找答案的童鞋,我先把我试验成功的办法贴出来,然后把我找答案过程中的错误方法也贴出来,然后如果大家有兴趣,再看下我对整个锁屏启动的分析(其实知道原理很重要,不过如果没有这个心不想了解也没关系,毕竟能干原创 2017-11-13 16:08:52 · 6507 阅读 · 0 评论 -
Android5.0禁止状态栏下拉
本文亲测有效,如有疑问,请在下方留言。禁止锁屏下拉分两种情况,一种是像我这样可以修改系统源码的,一种是在上面开发的第三方app的(没有系统权限)。两种方式的处理不一样,我们先来说下第一种;整个系统不可下拉第一种就很简单了,只需要修改系统远吗就能实现所有的状态栏不能下拉:(我这里用的5.1的源码) /** * Disable some features in the status ba原创 2017-10-19 15:50:23 · 11176 阅读 · 8 评论 -
Android系统源码Build系统入门详解
那么我们就以上列出的文件,一个个找添加依赖的方法,为了更清晰的了解我们要做什么,我们先来研究一下我们在eclipse开发第一个hello-jni的时候写过的Android.mk,这个大概是大部分同学接触的第一个mk文件了吧?因此我们先研究一下Jni下的Android.mk。包含C的Android.mk以最简单的Android.mk为例,就是说这个创建的时候啥都没有,脑补一下你刚刚学习安卓的时候写的那原创 2017-10-16 10:50:11 · 5544 阅读 · 0 评论 -
Android5.0去掉开机锁屏和休眠
源码分析应用程序开机不锁屏<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />onCreate中加入,最好在setContentView(R.layout.main)之前getWindow().setFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD,原创 2017-09-27 14:51:44 · 4128 阅读 · 0 评论 -
使用Aosp源码编译安卓ROM(小米,一加,三星,中兴等)
这是一篇实用性很强的文章,除了这段引言,其它的都不是废话;这篇文章教会你如何在你的大部分主流安卓机型上(小米,一加,三星,oppo,华硕,Google,Htc,华为,联想,LG,摩托,索尼,红米)使用Android系统源码(AOSP)定制你自己的Rom;实现步骤定制起来非常简单,我相信只要按照文章介绍去做,半个小时就可以学会定制出自己的Aosp安卓系统;找到手机代号;准备材料(手机,电脑......原创 2019-05-05 18:16:49 · 26346 阅读 · 10 评论 -
【手册】如何编译/修改三星手机Rom(二)
上一篇文章已经带领大家熟悉了kitchen的使用以及使用kitchen简单的修改三星官方Rom并打包回去,刷到桑星手机,如果不了解的小伙伴点击这里跳转《【手册】如何编译/修改三星手机Rom(一)》,了解上一篇的基础知识还是很有必要的;hi小伙伴们,现在回到这篇指南手册,我想告诉你的是,修改/定制Rom的唯一目的是移除三星提供给我们的在BLOAT上的吓人的负载,如果你像我上篇文章讲的那样下载好了f...翻译 2018-10-30 16:56:47 · 5337 阅读 · 3 评论