【Android系统】
文章平均质量分 73
BFP_BSP
开发
展开
-
Android开发 debug调试framework代码
调试原创 2023-02-08 15:45:32 · 760 阅读 · 0 评论 -
Android PackageManagerService(六)方法后缀 LI LIF LPr LPw 是什么?
首先PMS有两个非常重要的锁分别是mPackages,mInstallLock一、mPackages用于保护所有在内存中解析的软件包详细信息以及其他相关状态。二、mInstallLock用于保护所有对installed进程的访问,其操作通常涉及大量移动磁盘上的应用程序数据。三、LI 、LIF、LPr、LPw 是什么?首先L代表Lock,I代表mInstall,P代表mPackages,F代表frozen,r代表读,w代表写。四、例如installPackageLI调用者必须.原创 2020-07-30 17:37:33 · 568 阅读 · 0 评论 -
Android PackageManagerService(三)pm命令安装流程详解
关于adb安装,其copy过程与下载安装不同,但安装过程却与下载过程是相同的,这里不做重复分析。拷贝过程流程图adb的入口在com.android.commands.pm.Pm类,那么这是如何调用到这个类的呢,这是adb命令通过adbd守护进程调用到/system/bin/pm这个脚本,其脚本源码如下:base=/systemexport CLASSPATh-$base/framework/pm.jarexec app_process $base/bin.com.android.co.原创 2020-07-23 14:14:21 · 1698 阅读 · 0 评论 -
Android PackageManagerService(五)卸载流程详解
从PMS的内部结构上删除acitivity、service、provider等信息删除code、library和resource等信息调用installd删除/data/data/packageName以及/data/dalvik-cache下面的文件更新Settings中的package信息具体分析当我们在Settings中的应用页面找到一个安装了的应用程序,并点击卸载后,就会发送一个Intent给UninstallerActivity,在UninstallerActivity最后会启原创 2020-07-23 17:08:36 · 2303 阅读 · 0 评论 -
Android PackageManagerService(四)本地安装流程详解
本地安装参与对象包括PackageInstaller应用,PMS两部分。下面我们就来分析下PackageInstaller是如何调用到PMS中的。函数调用时序图示。点击文件管理器里面app文件会启动PackageInstaller的InstallStart这个activityprotected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent .原创 2020-07-23 15:09:17 · 775 阅读 · 0 评论 -
Android PackageManagerService(二)下载安装详解
下载安装可分为两部分:拷贝应用和安装应用。拷贝过程的函数调用时序图如图2所示下载安装frameworks层的入口函数为PackageManager.installPackage,由应用市场APP调用,然后调用PMS.installPackageAsUser,然后发送消息INIT_COPY、MCS_BOUND开始复制,调用HandlerParams.startCopy。这个方法主要分两部分,一部分是拷贝应用的执行程序,另一部分是创建应用的数据目录,拷贝部分由handleStartCopy完成。之后调用ha原创 2020-07-23 11:51:09 · 1411 阅读 · 0 评论 -
Android PackageManagerService(一)启动安装流程分析
一、PMS概述PKMS构造函数的主要功能:扫描Android系统中几个目标文件夹中的APK,从而建立合适的数据结构以管理诸如Package信息、四大组件信息、权限信息等各种信息。抽象地看,PKMS像一个加工厂,它解析实际的物理文件(APK文件)以生成符合自己要求的产品。例如,PKMS将解析APK包中的AndroidManifest.xml,并根据其中声明的Activity标签来创建与此对应的对象并加以保管,文章牵涉到的源码来自Android 8.0。二、系统应用启动安装流程图标题...原创 2020-07-21 15:38:32 · 1228 阅读 · 0 评论 -
Android P 源代码结构分析
摘录笔记,记录自学。Google提供的Android包含了:Android源代码,工具链,基础C库,仿真环境,开发环境等,完整的一套。第一级别的目录和文件如下所示:├── Makefile 全局的Makefile ├── build 系统编译规则和配置所需要的脚本和工具 ---------------- ├── prebuilt ...原创 2019-05-20 10:42:00 · 1487 阅读 · 0 评论 -
Android 8.0源码下载及编译环境搭建
最近在Ubuntu14.04上下载Android源码遇到的各种问题总结。网上搜到的各种搭建环境的文章,总是会出现一些这样那样的问题。1、Ubuntu14.04镜像下载地址 Ubuntu14.04 2、安装完系统后安装ssh方便本地window客户端工具连接Linux 安装命令 sudo apt-get install openssh-server ...原创 2018-07-14 16:11:52 · 6735 阅读 · 0 评论 -
Android系统制作自定义签名
1、简介应客户要求为了是特殊定制的系统更具安全,系统ROM需要使用自己定义的签名,还有一些特殊的场景也会更改系统的签名比如在过cts认证测试的时候也会修改平台签名才能测试通过关于签名的问题。这是因为平台默认的是test签名.网上大多说签名的都是app签名而非平台签名。test签名这种类型的key只适用于开发阶段,而且这种秘钥是公开的,谁都可以使用。当发布一款android产品,就需要另外给整个...原创 2018-07-13 15:53:20 · 5888 阅读 · 1 评论 -
在Android 5.0 SEAndroid下通过JNI访问一个内核节点
Android 5.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问。 本文将以用户自定义的内核节点/dev/wf_bt为例,手把手教会读者如何在JNI层获得对该节点的访问权限。第一步:找到需要访问该内核节点的进程(process),笔者自己这个节点由system_server进程来访问第二步:打开文件A原创 2016-05-30 18:29:01 · 1300 阅读 · 0 评论