博航社区

 找回密码
 立即注册博航社区

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 6905|回复: 0
打印 上一主题 下一主题

友善Nanopi pc RK3399安卓Android5 7 8 10如何获取root 系统权限1 [复制链接]

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2020-6-3 14:03:06 |只看该作者 |倒序浏览
分享到:
针对有app源码的开发人员1 简介

FriendlyThings是友善电子开发的一套安卓硬件开发SDK(函数库),安卓软件开发者可以通过它在Android应用程序中编程访问和控制ARM主板上的各种硬件资源,比如Uart, SPI, I2C, GPIO等接口,它基于Android-NDK技术开发,开发者无需掌握底层的嵌入式知识(尤其是驱动程序),就可以构建基于安卓系统的各种IoT物联网应用。


2 Android版本

我们提供的Android BSP已经包含FriendlyThings SDK(libfriendlyarm-things.so),可支持运行于如下两个Android平台版本:

  • Android 7.1.2-rk3399

BSP source code download link: https://gitlab.com/friendlyelec/rk3399-nougat
BSP source code location on the network disk: sources/rk3399-android-7.git-YYYYMMDD.tgz
Latest ROM download link: http://download.friendlyarm.com/NanoPC-T4

  • Android 8.1-rk3399

BSP source code download link: https://gitlab.com/friendlyelec/rk3399-android-8.1
BSP source code location on the network disk: sources/rk3399-android-8.1.git-YYYYMMDD.tgz
Latest ROM download link: http://download.friendlyarm.com/NanoPC-T4

3 开发板型号列表

FriendlyThings SDK(libfriendlyarm-things.so)适用于友善电子出品的如下RK3399系列主板:

  • NanoPC-T4
  • NanoPi M4 (需外接eMMC模块)
  • NanoPi NEO4 (需外接eMMC模块)

FriendlyThings也可以支持其他平台安卓主板,如三星S5P4418/S5P6818,三星S5PV210,全志H3/H5等平台,具体请查看这里FriendlyThings/zh

4 快速使用入门4.1 (第1步) 集成libfriendlyarm-things.so到你的app

克隆以下仓库到本地:

git clone https://github.com/friendlyarm/friendlythings-sdk

接着复制 libs 目录下的所有内容到你的工程目录下,然后在你的Android项目的src目录下创建com/friendlyarm目录,将java/FriendlyThings目录拷贝进去即可,最后的目录的结构看上去是这样的 (注:AndroidStudio的项目可能会稍有不同,但大致如此):

YourProject/├── AndroidManifest.xml├── libs│   ├── arm64-v8a│   │   └── libfriendlyarm-things.so│   └── armeabi│       └── libfriendlyarm-things.so├── src│   └── com│       └── friendlyarm│           ├── FriendlyThings│           │   ├── BoardType.java│           │   ├── FileCtlEnum.java│           │   ├── GPIOEnum.java│           │   ├── HardwareControler.java│           │   ├── SPIEnum.java│           │   ├── SPI.java│           │   └── WatchDogEnum.java

使用以下方法导入它们,主要的接口都集中在 HardwareControler.java文件中:

import com.friendlyarm.FriendlyThings.HardwareControler;import com.friendlyarm.FriendlyThings.SPIEnum;import com.friendlyarm.FriendlyThings.GPIOEnum;import com.friendlyarm.FriendlyThings.FileCtlEnum;import com.friendlyarm.FriendlyThings.BoardType;

4.2 (第2步) 让你的app拥有system权限

你的app需要拥有system权限,才能访问硬件资源;
请参考下面的方法修改你 app 的 AndroidManifest.xml 和 Android.mk这两个文件;
并且最好将你的app放到Android源码中去编译,这一步不是必需的,但是建议这么做,如果你的app在外部编译,你需要对apk进行签名才能让你的app拥有system权限(新手不太建议,过程比较繁琐)。

4.2.1 修改AndroidManifest.xml

在应用程序的AndroidManifest.xml中的manifest节点中加入以下属性:

android:sharedUserId="android.uid.system"

4.2.2 修改Android.mk

编写一个Android.mk文件(最简单的方法就是拷贝示例中的Android.mk文件),修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行:

LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS) LOCAL_SRC_FILES := $(call all-subdir-java-files) LOCAL_PACKAGE_NAME := 你的项目名 LOCAL_CERTIFICATE := platformLOCAL_MODULE_TAGS := optionalLOCAL_CFLAGS := -lfriendlyarm-hardware include $(BUILD_PACKAGE)

4.3 (最后1步) 在 Android源代码中编译你的app

先在 Android源代码根目录调用 setenv.sh 导出环境变量,然后进入你的 app 目录,使用mm命令编译;
例子:编译 GPIO_LED_Demo,以RK3399平台为例:

cd rk3399-android-8.1. setenv.shcd vendor/friendlyelec/apps/GPIO_LED_Demomm


分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
分享分享0 收藏收藏0 转发到微博

使用道具 举报

Archiver|手机版|谷歌地图|百度地图|官网地图|淘宝链接|博航智能圈 - ARM嵌入式AI物联网IOT机器人

GMT+8, 2024-4-28 05:09 , Processed in 0.041695 second(s), 6 queries , Gzip On, Memcache On.

club.broadon.net

© 2007-2012 BroadOn

回顶部