android:shareduserid的简单介绍
本篇文章给大家谈谈android:shareduserid,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、android怎么在代码里获得系统文件的读写权限
- 2、Android应用程序获取system权限
- 3、如何让应用程序获得系统权限以及如何使用platform密钥给apk签名?
- 4、为什么在AndroidManifest文件中加shareduserid="android.uid.system"编出来的APK,push手机里应用就没了
- 5、求问android怎么在代码里获得系统文件的读写权限?
- 6、Android想在代码里获取AndroidManifest.xml文件里面的android:sharedUserId
android怎么在代码里获得系统文件的读写权限
android怎么在代码里获得系统文件的读写权限
1、必须是Android系统开发人员,否则你无法修改init.rc等文件。
2、你的应用程序必须要获得system权限。
在应用层 你要想用代码获得系统文件权限,除非你手机root了
要么你自己做rom。 自己修改 init,rc
本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的。
第一个方法简单点,不过需要在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",这样也是保护了系统的安全。
Java代码
1、必须是Android系统开发人员,否则你无法修改init.rc等文件。 2、你的应用程序必须要获得system权限。
在应用层 你要想用代码获得系统文件权限,除非你手机root了
要么你自己坐rom。。。。 自己修改 init,rc
1、必须是Android系统开发人员,否则你无法修改init.rc等文件。 2、你的应用程序必须要获得system权限。 在应用层 你要想用代粗者码获得系统文件权限,除非你手机root了 要么你自己坐rom。。。。 自己修改 init,rc
[img]Android应用程序获取system权限
支持原作者 :
软硬件环境
ubuntu 14.04
Android studio2.1.2
Android 5.1.1
前言
一般的Android应用程序,在安装后,程序只能访问/data/data/${程序包名}下的数据,如常见的SharedPreferences、database等。
而如果想让app访问其它地方的资源时,就必须要获取更高的权限丛团,像system或者root。本文完成system权限的获取,实际上一般的应用有system的权限基本上也够了。
修改apk内的AndroidManifest.xml
在app中的AndroidManifest.xml文件中的manifest标签中加入
android:sharedUserId="android.uid.system"
APP工程生成apk文件
android studio或者eclipse自动就帮你生成好了
给apk文件进行签名
这里分两种情况,一种是厂商,有android系统源码,既可以把app源码导入到android源码中,也可以单独完成签名。第二种磨历是你仅仅是做应用的,拿不到厂商的source code,而且
这种情况也相当普遍,怎么办?别着急,我们今天就来解决这个问题。
签名需要的几个文件
这个你必须找厂商要,signapk.jar、platform.x509.pem、platform.pk8,如果你有source code,signapk.jar存瞎郑搜放在prebuilts/sdk/tools/,platform.* 两个key文件存放在build/target/product/security/下
签名具体命令
java -jar signapk.jar platform.x509.pem platform.pk8 unsigned.apk signed.apk
制作新的image文件
如果你的应用需要预置到android系统中,将signed.apk导入到android源码目录中(一般是out/target/product/${hardware}/system/app/下),编译生成新的
system.img,再烧录到目标板中。如果不需要预置,那就直接adb install好了。
测试
待系统启动后adb shell到板子上,ls -l查看app安装目录(/data/data/${程序包名})的权限,看看是不是变成system:system了。
如何让应用程序获得系统权限以及如何使用platform密钥给apk签名?
Android中许多函数只能是系统程序或者有root权限的程序才可以调用,否则会有"Permission denied"异常。所以如果开发时要调用此类函数,必须授予程序root权限。下面是两种具体的实现方法
注:两种方法都不一定适用于所有android系统。
方法一:需要在清掘Android系统源码的环境下用make来编译:
在应用程序的 AndroidManifest.xml 中的 manifest 节点中加入 android:sharedUserId="android.uid.system" 这个属性
修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
使用mm命令来编译,生成的apk就有修改系统时间的权限了。
方法二:
同上,加入android:sharedUserId="android.uid.system"这个属性。
使用eclipse编译出apk文件,但是这个apk文件是不能用的。
用压缩软并漏件打开apk文件,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件。 (这一步我跳过了(原本是无意的,后来发现下面也有提到),结果一样可以)
使
用目标系统的platform密钥来重新给apk文件签名。这步比较麻烦,首先找到密钥文件,在Android源码目录中的位置
是"build\target\product\security",下面的platform.pk8和platform.x509.pem两个文件。然
后用Android提供的Signapk工具来签名,signapk的源代码是在"build\tools\signapk"下,用法为"signapk
platform.x509.pem platform.pk8 input.apk
output.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",这样也是保护了系统的安全。
最后说一下,这个android:sharedUserId属性不只可以把apk放到系统进程中,也可以配置多个APK运行在一个进程中,这样可以共享数据,应该会很有用的。
为什么在AndroidManifest文件中加shareduserid="android.uid.system"编出来的APK,push手机里应用就没了
1. 在应用程序的AndroidManifest.xml中的manifest节点中加入android:sharedUserId="android.uid.system"这个属性。 2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform这一行
3. 使用mm命令来编做亩译,生成的陆滚apk就有修改系统时间的权纯悉森限了。
求问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",这样也是保护了系统的安全。
android怎么在代码里获得系统文件的读写权限
Java代码 1、必须是Android系统开发人员,否则你无法修改init.rc等文件。 2、你的应用程序必须要获得system权限。 在应用层 你要想用代码获得系统文件权限,除非你手机root了 要么你自己坐rom。。。。 自己修改 init,rc
win10怎么获得修改系统文件燃蚂的权限
方法/步骤
1
首先找到你要操作的文件夹,这里用一个声卡相关的文件夹做例子。选中文件夹。右击它。选择文件的属性,安全---高级。
2
更改所有者,如图所示。在输入对象名称那儿,输入你的账户名称,我的是微软账户。输入完之后确定。
3
回到刚才的界面,你会看到所有者已经改变了,变成了你的账号。然后确定退出,回到文件夹。(一定要确定后退出回到文件中,才能进行下一步)
4
再次回到刚才的界面。禁止所有继承。
5
添加用户。输入账号,我输入的是微软账号。输入后确定。
手机获得root 权限 怎么找到系统文件
通过第三方软件获得Root权限,可以访问和修改手机操作系统里几乎所有的文件,但这样操作有可能影响手机的稳定性,出现死机、重启等人为性故障。
另外获取权限后一般对存储器和CPU等主板上主要部件引起不良。Root属于修改操作系统软件,按照条例不属于包修范围。为了提升顾客满意度,对Root顾客提供免费升级固件服务,如果Root已影响到手机硬件需要更换主板,则需要收取主板费用。
若您的机器Root后需将机器恢复到原来的系统版本,请将机器送到服务中心,由售后工程师帮助检查处理。自行将设备恢复出厂设置是无法取消Root权限的。
求问如何恢复系统文件的默认权限?
对于已经获取所有权限的文件,建议大家还是恢复到原来的状态。今天就跟大家分享一下如何恢复系统文件的默认权限,Windows 7和Windows 8系统都是一样的操作步骤。这里以平时最常修改的hosts文件为例,下图显示已获取hosts文件所有权限。已获得所有权限的hosts文件恢复权限有点类似于于逆向操作,首先点选Administrators组(上图蓝色条),然后点击下方的“高级”按钮,切换到“所有者”标签。高级安全设置-所有者在上面的窗口中,点击“编辑”按钮打开新窗口来更改所有者。编辑所有者到这一步,你会发现可更改的所有者并没有当初替换时的TrustedInstaller,怎么办?别急,点击“其他用户或组”来添加它。在新开的窗口里,输入:NT SERVICE\TrustedInstaller,注意前面的NT SERVICE一定要加上,否则系统不认。添加TrustedInstaller用户完成后点击确定回到上一窗口,此时会看到TrustedInstaller用户出现了,接下去就是选择它,然后一路确定退出各个窗口。文件所有权恢复到默认状态
如何用代码读取查看文件的读写权限???
File类里面就有canRead,canWrite,canExecute方法啊。 查看原帖
麻烦采纳,谢谢!
获得root权限后怎么样删除系统文件啊?
用re
新手求助,获得TOOR权限后,怎么替换系统文件呀!
先耐心的把这里的帖子看上几页,再多百度百度资料,不要手机一上手就玩这些要root权限的内容,容易出问题,到时候问题越来越多。。。建议至少2周后再做这些事情,对你会很有帮助。 查看原帖
iMac win7下怎么获得权限能读写Mac的文件
对于一般文件来说,是不需要开启administrator账户的,只需要一个简单的办法就OK啦!比如说,对待下面的这种类型的文件夹。
2
我们只需要击右键,选择“管理员取得所有权”即可。
3
对于一些程序文件来说,只需要你击右键,选择“以管理员身份运行”,也是一个非常便捷的获得管理员权限的办法。
END
开启Administrator账户的方法
Windows 7系统中,administrator账户并不是默认开启的,那么就需要我们手动开启,这也不是很难的啦!对计算机图标,击右键,选择管理。
打开界面后,选择本地用户和组,单击用户,选择administrator账户即可。
3
打开,administrator账户之后,按照以下的操作来进行就行了。
4
这样,在开始登陆的界面,即可以出现administrator账户了,选择此账户即可获得管理员最高权限,不过建议一般来说此账户还是不要开启的好,如果此账户受损,再创建帐户很容易失败。还有,在第一次开启此账户时,是不需要密码的。
android怎么获取文件夹权限代码
这个问题其实LBE已经解决了。 1.在2012隐私保护版中,每次运行时请求系统root,创建一个开机启动服务libload.so,专门用于处理lbe自身的root请求。 2.在2013免root版中,首次运行时自动获取系统root,并把破解过的su文件复制到/system/xbin/.sv ,然后给6755的权限,专门用于处理lbe自身的root请求。 上述两种方案,均为程序自带root管理,用于解决其自身root请求。 以下代码即为方案2的原理,附件中为修改过的su文件。 ******************************************* 安卓的su文件,基本原理为 1234567if (pid=DB(Allow)) then "get uid=0 root" 白名单,程序获取rootelseif (pid=DB(Disable)) Return 黑名单,返回空else View"superuser.active" 数据库无记录,“授权管理”弹出root请求窗口endif修改后的su文件 1if (pid"") then "get uid=0 root" 无条件,返回root********************************************** 我反编译b.apk,然后把java应用调用runtime.exec("su")的代码全部改为runtime.exec("sa"), 然后重新打包签名好。安装这个软件。 用RE文件管理器把上面附件的su改名为sa,复制到/system/xbin/sa并改权限rwsx-rsx-r。 以后使用b.apk,获取root权限没有任何提示。 su.zip大小:249.85K 已经过百度安全检测,放心下载 点击下载下载量:133
Android想在代码里获取AndroidManifest.xml文件里面的android:sharedUserId
android:sharedUserId="@string/abc_action_bar_home_description"森猜
在string.xml里面配租春吵一弊侍下就行了
关于android:shareduserid和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。