怎么在源码中添加权限(怎么给源码添加授权代码)
本文目录一览:
- 1、android怎么在代码里获得系统文件的读写权限
- 2、求AMXX编写源码的高手,关于额外权限的写法。
- 3、请问谁能给我一个实现android手机权限控制的简单程序代码,谢谢您了
- 4、在WINDOWS 7中怎样在在源代码中加入让程序以管理员身份权限运行的语句?
- 5、如何在android源码中给system/etc目录添加文件并修改其权限
- 6、想给一个android程序添加权限。
android怎么在代码里获得系统文件的读写权限
本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。
第一个方法简单点,不过需要在Android系统源码的环境下用make来编译:
1. 在应用程序的AndroidManifest.xml中的manifest节点中加入
android:sharedUserId="android.uid.system"这个属性。
2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
3. 使用mm命令来编译,生成的apk就有修改系统时间的权限了。
第二个办法麻烦点,不过不用开虚拟机跑到源码环境下用make来编译:
1. 同上,加入android:sharedUserId="android.uid.system"这个属性。
2. 使用eclipse编译出apk文件,但是这个apk文件是不能用的。
3. 用压缩软件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。
4. 使用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦,
首先找到密钥文件,在我的Android源码目录中的位置
是"build argetproductsecurity",下面的platform.pk8和platform.x509.pem
两个文件。
然后用Android提供的Signapk工具来签名,signapk的源代码是
在"build oolssignapk"下,
用法为"signapk platform.x509.pem platform.pk8 input.apk output.apk",
文件名最好使用绝对路径防止找不到,也可以修改源代码直接使用。
这样最后得到的apk和第一个方法是一样的。
最后解释一下原理,首先加入android:sharedUserId="android.uid.system"这个属性。通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,这样就有权限来修改系统时间了。
只是加入UID还不够,如果这时候安装APK的话发现无法安装,提示签名不符,原因是程序想要运行在系统进程中还要有目标系统的platform
key,就是上面第二个方法提到的platform.pk8和platform.x509.pem两个文件。用这两个key签名后apk才真正可以放入系统进程中。第一个方法中加入LOCAL_CERTIFICATE := platform其实就是用这两个key来签名。这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到 platform.pk8和platform.x509.pem两个文件。要是别家公司做的Android上连安装都安装不了。试试原始的Android 中的key来签名,程序在模拟器上运行OK,不过放到G3上安装直接提示"Package ... has no signatures that match those in shared user android.uid.system",这样也是保护了系统的安全。
求AMXX编写源码的高手,关于额外权限的写法。
也许楼主需要查一份对照表
以下AMXX的支持库中关于权限的常量
管理员等级 常量
ADMIN_ALL 0 //所有人
ADMIN_IMMUNITY 1 //标记 "a", 免疫
ADMIN_RESERVATION 2 //标记 "b", 保留通道
ADMIN_KICK 4 //标记 "c", 踢玩家
ADMIN_BAN 8 //标记 "d", 封玩家
ADMIN_SLAY 16 //标记 "e", 杀死
ADMIN_MAP 32 //标记 "f", 更换地图
ADMIN_CVAR 64 //标记 "g", 更改参数
ADMIN_CFG 128 //标记 "h", 执行配置
ADMIN_CHAT 256 //标记 "i", 聊天
ADMIN_VOTE 512 //标记 "j", 投票
ADMIN_PASSWORD 1024 //标记 "k", sv_password
ADMIN_RCON 2048 //标记 "l", 远程命令权限
ADMIN_LEVEL_A 4096 //标记 "m", 自定义
ADMIN_LEVEL_B 8192 //标记 "n", 自定义
ADMIN_LEVEL_C 16384 //标记 "o", 自定义
ADMIN_LEVEL_D 32768 //标记 "p", 自定义
ADMIN_LEVEL_E 65536 //标记 "q", 自定义
ADMIN_LEVEL_F 131072 //标记 "r", 自定义
ADMIN_LEVEL_G 262144 //标记 "s", 自定义
ADMIN_LEVEL_H 524288 //标记 "t", 自定义
ADMIN_MENU 1048576 //标记 "u", 菜单
ADMIN_ADMIN 16777216 //标记g "y", 默认管理员
ADMIN_USER 33554432 //标记 "z", 默认用户
其中ADMIN_LEVEL_A(即m权限)等价于4096,也就是比如说
register_clcmd("/gogogo","func",ADMIN_LEVEL_A) //注册一个/gogogo命令
也可以写成
register_clcmd("/gogogo","func",4096) //注册一个/gogogo命令
这个只要了解就好,希望对楼主有帮助
请问谁能给我一个实现android手机权限控制的简单程序代码,谢谢您了
添加权限是在编译生成APK包前,也就是在源代码里添加权限。
找到源代码工程里的AndroidManifest.xml文件打开。
把uses-permission android:name="android.permission.WAKE_LOCK"/加入去,如图
在WINDOWS 7中怎样在在源代码中加入让程序以管理员身份权限运行的语句?
方法1:用微软的Application Compatibility Toolkit 4.1里的Compatibility Administrator制作一个兼容性数据库文件,扩展名为.sdb, 然后把这个sdb和应用程序一起分发。
基本步骤是
制作SDB
1. 在Compatibility Administrator 里新建的sdb下(打开就有),建立new fix(工具栏上的new fix)。对话框出现,输入名字。
2. 兼容平台选None (这个Application Compatibility Toolkit 4.1是为xp服务的,所以没有XP选项)
3. 然后是需要设置的兼容性,选择”RunAsAdmin”, 在列表中间的位置。需要滚动一下。
4. 选择exe文件名,下一步
5. 如果有可能存在同名exe, 选上“FileSize”, “CheckSum”, 以便使这个兼容性设置针对的确实是你的文件。
6. 如果有多个EXE要设,可以重复1-5步骤。
7. 保存sdb文件,保存时输入的数据库名字会出现在目标PC的“添加删除程序”中。
发布SDB
1. 在安装目标PC的Vista系统中,以管理员权限启动cmd(在开始菜单的“命令行提示符”图标上按右键,然后以管理员权限执行)
2. 输入 “sdbinst 你的sdb文件名” 例如 sdbinst test.sdb . 按回车。Sdbinst是系统自带的安装sdb的程序。XP里就有.
安装你的应用程序后,就能以管理员方式执行。
方法2:用户自己动手,或者Vista自动检测,或者你修改注册表。
用户自己动手的方法是在Exe文件的属性对话框的“兼容性”标签中,选中“以管理员权限执行此程序”复选框。
此外,如果你的程序CreateProcess反复失败的话,有时Vista会冒出个“程序兼容性助手”,自动给你这个程序在注册表里加一项。
手动修改注册表其实和上2者一样。键为
HKEY_CURRENT_USERS\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layer 键下面的值的名字是程序的全路径,值数据是“RunAsAdmin”.(兼容性助手写入的值是ElevateCreateProcess)
如何在android源码中给system/etc目录添加文件并修改其权限
需要root权限。
然后Runtime.exec() 调用linux命令。
不过这不是最麻烦的。最麻烦的是,卸载软件之后。如何恢复原来的
system/etc目录中的权限之类的。
想给一个android程序添加权限。
添加权限是在编译生成APK包前,也就是在源代码里添加权限。
找到源代码工程里的AndroidManifest.xml文件打开。
把uses-permission android:name="android.permission.WAKE_LOCK"/加入去,如图