当前位置: 首页 > news >正文

Automotive 添加一个特权APP

Automotive 添加一个特权APP

platform: android-13.0.0_r32

一. 添加一个自定义空调的app为例

路径:packages/apps/Car/MyHvac

app内容可以自己定义,目录结构如下:
在这里插入图片描述

1.1 Android.bp
package {default_applicable_licenses: ["Android-Apache-2.0"],
}android_app {# app的名字name: "MyHvac",# 源码srcs: ["src/**/*.java"],# 资源resource_dirs: ["res"],platform_apis: true,# platform 签名certificate: "platform",# 是否是特权appprivileged: true,# 依赖 car-liblibs: ["android.car-system-stubs"],  # 这是app的常用依赖static_libs: ["jsr305","androidx.legacy_legacy-support-v4","androidx.appcompat_appcompat","androidx-constraintlayout_constraintlayout","androidx.lifecycle_lifecycle-extensions","car-apps-common",],optimize: {enabled: false,},dex_preopt: {enabled: false,},product_variables: {pdk: {enabled: false,},},# 这里就是请求特权的模块信息了required: ["allowed_privapp_com.jiangc.myhvac"]
}
1.2 权限申请

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.jiangc.myhvac"><uses-sdkandroid:minSdkVersion="22"android:targetSdkVersion="31"/><uses-permission android:name="android.car.permission.CONTROL_CAR_CLIMATE" /><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><!-- Required to use the TYPE_DISPLAY_OVERLAY layout param for the overlay hvac ui--><uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW" /><!-- Allow Hvac to go across all users--><uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /><uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /><protected-broadcast android:name="android.car.intent.action.TOGGLE_HVAC_CONTROLS" /><uses-featureandroid:name="android.hardware.type.automotive"android:required="true" /><applicationandroid:allowBackup="true"android:appCategory="audio"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.MyHvac"><activityandroid:name=".MainActivity"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

其中INTERACT_ACROSS_USERS、CONTROL_CAR_CLIMATE为特殊权限

二. 添加特权配置

路径:packages/services/Car/data/etc/

以包名创建一个xml文件,比如本例中的com.jiangc.myhvac.xml

内容如下:将特殊权限放到这里

<permissions><privapp-permissions package="com.jiangc.myhvac"><permission name="android.permission.INTERACT_ACROSS_USERS"/><permission name="android.car.permission.CONTROL_CAR_CLIMATE"/></privapp-permissions>
</permissions>

然后在Android.bp中添加一个模块

prebuilt_etc {# 模块名,和前面Android.bp中匹配name: "allowed_privapp_com.jiangc.myhvac",sub_dir: "permissions",# 这里是我们上面添加的特权文件名src: "com.jiangc.myhvac.xml",filename_from_src: true,
}

接下来修改packages/services/Car/car_product/overlay/frameworks/base/core/res/res/values/policy_exempt_apps.xml

添加应用的包名

<resources><!--A collection of apps that are critical for the device and hence will never be disabled bydevice policies or APIs.--><string-array translatable="false" name="policy_exempt_apps"><item>com.android.car.cluster.home</item><item>com.android.car.hvac</item><item>com.android.car.media</item><item>com.android.car.radio</item><item>com.jiangc.myhvac</item></string-array>
</resources>

然后make

http://www.lryc.cn/news/154978.html

相关文章:

  • 自定义TimeLine
  • 如何使用SQL系列 之 如何在SQL中使用WHERE条件语句
  • leetcode:1941. 检查是否所有字符出现次数相同(python3解法)
  • Echarts 各种点击事件监听
  • 《智能网联汽车自动驾驶功能测试规程》
  • NVIDIA CUDA Win10安装步骤
  • Elasticsearch、Kibana以及Java操作ES 的快速使用
  • 逐鹿人形机器人,百度、腾讯、小米卷起来
  • AndroidStudio推荐下载和配置
  • mysql异常占用资源排查
  • requests 库:发送 form-data 格式的 http 请求 (python)
  • 行测图形推理规律(一)元素组成
  • 【python爬虫】13.吃什么不会胖(爬虫实操练习)
  • 深入理解联邦学习——联邦学习与现有理论的区别与联系
  • 基于Python+DenseNet121算法模型实现一个图像分类识别系统案例
  • 旋转图片两种方法
  • 10 mysql tiny/small/medium/big int 的数据存储
  • UI自动化测试之Jenkins配置
  • 电视盒子什么品牌好?数码博主盘点目前性能最好的电视盒子
  • 对于枚举类型的输出
  • solidity开发环境配置,vscode搭配remix
  • chatGPT生成代码--go组合算法
  • 推荐6款普通人搞副业做自媒体AI工具
  • vs中git提交合并分支的步骤记录
  • PostgreSQL 备份恢复:pg_probackup
  • 博客程序系统其它功能扩充
  • MATLAB 2023安装方法之删除旧版本MATLAB,安装新版本MATLAB
  • 全国唯一一所初试考Java的学校!平均300分拿下
  • day35 | 860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球
  • ffmpeg批量转码