`
forhope
  • 浏览: 365766 次
  • 性别: Icon_minigender_1
  • 来自: 帝都
社区版块
存档分类
最新评论

Android 权限相关问题

 
阅读更多
ServiceMananger管理Service需要System权限的问题

与PC/SC交互时使用Android特有的Binder机制,由SerivceManager负责Service的注册与获取,但是在注册时,需要系统权限,所以在AndroidManifest.xml中加入android:sharedUserId="android.uid.system",此时不能在开发板上安装成功。因为没有对其签名,必须到编译后的源码中去找到
引用

out/host/linux-x86/framework/signapk.jar
build\target\product\security\platform.x509.pem
build\target\product\security\platform.pk8

这三个文件并进行签名
java -jar ${filePath}\signapk.jar platform.x509.pem platform.pk8 source.apk output.apk


但由于该公钥和私钥是只限于原生的Android或者自己编译的系统,其他手机是无法安装的,安装时会提示错误信息。

只能直接放到/system/app/目录下的,绕开签名检查。同时用RootExplorer把该APK的使用者改为System,重启手机,识别不了该apk,logcat打印还是因为签名问题.最终得出结论此方案是不可行的。


关于执行需要root权限的shell命令(比如mount -o remount, rw /system)的问题:
分析RootExplorer的mount过程:

先看一下进程:

app_78    14887 94    148620 22504 ffffffff afd0c52c S com.speedsoftware.rootexplorer
app_78    14895 14887 804    344   c00a6f28 afd0c3bc S /system/bin/sh
root      14897 14895 812    360   c0123a2c afd0b46c S sh


可见rootexplorer在启动了一个同用户级别的shell进程后,通过这个shell进程又启动了一个root级别的shell进程,此时我们就可以用这个shell执行需要root权限的命令了。

ProcessBuilder pBuilder = new ProcessBuilder("/system/bin/sh");
		pBuilder.directory(new File("/"));
		try {
			 process = pBuilder.start();
		} catch (IOException e) {
			e.printStackTrace();
		}

		try {
			BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
			BufferedReader error = new BufferedReader(new InputStreamReader(process.getErrorStream()));
			
			PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(process.getOutputStream())), true); 
			out.println(cmd);
			String line;
			while ((line = input.readLine()) != null) {
				Log.e("SystemCmdUtil", "line: "+line);
			}
			while ((line = error.readLine()) != null) {
				Log.e("SystemCmdUtil", "error: "+line);
			}
			input.close();
			out.close();
		} catch (Exception e) {
			Log.e("SystemCmdUtil", e.getMessage());
		}
	


参考:

http://blog.csdn.net/a345017062/article/details/6441986
http://blog.csdn.net/a345017062/article/details/6442306

ROOT权限获取:
http://bbs.gfan.com/android-3079149-1-1.html

简单的说,就是把zergRush拷贝到系统的临时文件夹下并运行,然后把su拷贝到系统文件夹中,这样就可以以root权限运行程序了。
分享到:
评论

相关推荐

    Android 串口通信权限问题

    在Android平台上进行串口通信时,开发者可能会遇到一系列权限相关的问题。串口通信是指设备间的通信方式,通过串行接口(如UART)进行数据传输,常用于嵌入式开发、物联网应用以及硬件调试等场景。然而,由于Android...

    android文件读写权限

    一、Android权限系统概述 Android系统的权限管理基于Linux内核,因此它采用了类似Linux的权限模型。每个应用程序都有自己的用户ID(UID)和一组权限,这些权限决定了应用可以执行的操作。Android系统提供了两种类型...

    Android 定位权限申请

    在Android系统中,权限管理是应用安全的重要组成部分。自Android 6.0(API级别23)开始,谷歌引入了一种新的权限管理模式——运行时权限(Runtime Permissions)。这个变化对开发者来说是一个重大调整,因为在此之前...

    Android权限列表permission说明.txt

    ### Android权限列表详解 在Android应用开发过程中,权限管理是一项重要的任务。为了保障用户的数据安全与隐私保护,Android系统设计了一套完善的权限管理系统。本文将详细介绍Android权限列表中的部分常见权限,...

    Android中运行权限

    在Android系统中,运行权限是保护用户数据和设备安全的重要机制。从Android 6.0(API级别23)开始,引入了一项重大变化,即动态权限管理,这与之前的版本有很大不同。在Android 6.0之前,应用在安装时会一次性请求...

    Qt for android 动态权限申请

    在Qt中,我们可以通过QAndroidJniObject来与Android原生API交互,处理权限问题。以下是一个简单的动态权限申请工具类的实现: 1. **创建权限检查函数**: 首先,我们需要一个函数来检查应用是否已经获得了特定的...

    Android权限申请示例

    在Android系统中,权限管理是保护用户数据和设备安全的重要机制。从Android 6.0(API级别23)开始,...通过学习和实践这个示例,开发者可以更好地适应Android权限管理的新规范,为用户提供更安全、更透明的使用体验。

    android 权限管理工具集

    本知识文章将深入探讨“Android权限管理工具集”,特别是针对Android Studio开发环境的实现。 首先,Android Studio是Google官方推荐的Android应用开发IDE,它基于IntelliJ IDEA,提供了丰富的功能,如代码自动完成...

    android权限设置大全

    Android权限设置大全 Android权限设置大全是Android操作系统中的一项重要机制,旨在保护用户隐私和设备安全。Android权限系统允许应用程序请求访问设备的某些功能或数据,如位置信息、联系人列表、照片、录音等。...

    Android开发权限详细介绍

    在提供的文档《Android的权限访问属性签.doc》和《AndroidBroadcastReceiver权限大全.doc》中,应该详细列出了Android权限系统中的各类权限以及使用方法,包括如何在代码中申请、检查和处理权限,以及...

    Qt Android 读写文件权限与录制音频权限询问Demo

    本Demo是针对这些权限管理的一个实例,展示了如何在Qt应用程序中实现对Android权限的正确处理。 首先,我们来详细了解一下Qt在Android上处理文件读写权限的过程。在Android系统中,读写文件权限分为内部存储和外部...

    Android 动态权限获取

    - Android 6.0引入了运行时权限,对于危险权限(如访问联系人、位置、相机等),应用必须在使用相关功能时请求用户的许可。 2. **申请动态权限的步骤**: - **检查权限状态**:使用`ContextCompat....

    Android解决所有权限相关。

    一、Android权限分类 1. 正常权限:这些权限对用户隐私的影响较小,系统会自动授予,无需用户在安装时明确同意。例如,`ACCESS_NETWORK_STATE`用于获取网络状态,`INTERNET`用于访问互联网。 2. 危险权限:涉及...

    android5.0权限问题解决办法

    ### Android 5.x权限问题详解及解决方法 随着Android系统的不断升级与完善,为了更好地保护用户数据的安全性,从Android 5.x版本开始,系统引入了更为严格的SELinux(Security Enhanced Linux)权限管理机制。这一...

    android悬浮窗,android无需权限的悬浮窗

    android无需权限的悬浮窗例子 android悬浮窗权限 android拖动视图 安卓悬浮窗 安卓悬浮球 android悬浮球 大部分人实现的悬浮窗都需要授权悬浮窗权限,否则无法使用,但本人开发这个悬浮窗无需权限,稳定美观,带滑动...

    Android-Android6.0系统中权限问题调用

    在Android 6.0(API级别23)中,谷歌引入了一种新的权限管理系统,以应对之前版本中权限滥用的问题。这个系统的变化显著加强了用户的隐私控制,使得应用程序需要在运行时请求敏感权限,而不是在安装时一次性获取所有...

    Android-Android权限申请运行时权限未知应用安装权限悬浮窗权限显示通知和访问通知权限

    此项目“Android-Android权限申请运行时权限未知应用安装权限悬浮窗权限显示通知和访问通知权限”是针对Android权限申请的一个封装库——AndPermission,它简化了权限申请的流程,提供了链式调用接口,并且能够适应...

    Android运行时权限

    在Android系统中,运行时权限是一种安全机制,自Android 6.0(API级别23)引入,旨在增强用户对应用程序权限的控制。这个机制要求应用程序在运行时请求某些敏感的权限,而不是像以前那样在安装时一次性获取所有权限...

Global site tag (gtag.js) - Google Analytics