我彻底我凌乱了了,这ROOT不ROOT没看出啥区别

&&|&&责编:魏景芳
&&&&北京时间3月3日消息,诺基亚搭载Android系统的X系列手机已经发布。既然是Android手机,自然是少不了的。在国外知名论坛XDA-Developers上,目前已经有网友成功将诺基亚X,并且过程非常简单。Nokia&X已获Root(图片来自腾讯)&&&&据网友介绍,使用Framaroot工具便可诺基亚X,同时包括Gmail、Google&Now、谷歌地图和Hangouts等谷歌的应用都可以在手机上运行。据了解,诺基亚X虽然运行的是基于Android4.1.2开发的系统,但所有谷歌服务已经被完全去除,并替换成了诺基亚和微软自家的服务。&&&&当然,用户对于诺基亚X能Root反应不一。一些用户称,该机采用原生Android系统之后,由于自身硬件配置不高,即便能够安装一些大型游戏也没法流畅的运行,体验方面自然也存在问题。而另一些用户则表示,诺基亚X能够Root,多少还是增添了手机的可玩性。&&&&诺基亚X被Root之后,诺基亚开发者团队在官方Twitter上发表了看法,并表示“很高兴,这事儿做的很不赖”,不过微软方面暂时没有表态。&&& 众筹平台从诞生之日起已经帮助不少产品完成了梦想,也让更多的人花更少的钱获得了最优的产品。这种通过互联网方式向网友募集项目资金的模式。通俗点的说法就是,彼此成就梦想,大家共同筹钱完成一个任务。和我们常见的预售、团购的区别在于:预售是B2C,众筹偏向C2B,出资人现有购买或投资的意愿,筹资人按需组织生产。  近日,一款名为龙羚活泉净水器的产品即将在日登录国内最大的众筹平台--京东众筹。据悉此次众筹成功的金额是5万元标准。截止日期为号,成功完成众筹目标后,在30天内进行发货。届时京东众筹平台还将从一元档的支持者中抽取5名幸运者获得龙羚活泉净水器。  世界卫生组织提出的好水六大标准:1.不含有害物质的干净的水;2.营养的水,含有适当比例的矿物及微量元素;3.弱碱性PH值7.2-8.5;4.小分子团水;5.负电位;6.富含溶解氧。依据好水标准,让我们一探究竟。  干净安全  据悉,此款活泉净水器首先对水进行立体深层净化,去除自来水中有害物质如杂质、泥沙、铁锈、余氯、红虫细菌、有机物等有害物质。然后再进一步活化水质。  富含离子矿物和微量元素  蒸馏水、纯水和超纯水,以医学眼光而言并非是好的水,因为不含矿物质,喝起来口感也不美味,严重的是这种纯水无法孕育生命。人赖以生存除了氧、碳、氮、氢这些主要元素,更离不开如钙、钾,镁,铁、锌、铜、碘、钴、钼、硒、铬、矽、氟、锰等微量元素,如果缺乏这些元素,生态构造机能的一部分更会降低,长久下来,会造成各种疾病,但又不能摄取过多。有关这点看来,很微妙又很平衡的含有七十四种微量元素的水是最理想的饮用水。经龙羚活泉净水器过滤的水均富含水中的矿物微量元素,更贴近人体细胞所需要的水,再者从健康与口感而言均完胜纯净水。  理想的pH值小分子团  水是以分子团的结构存在的,研究发现水分子团越大,活性越小,这种水越不好喝,不易吸收,而且存在胃肠和肾脏中产生腹胀感觉。其实水在人体内都是通过水蛋白通道进入细胞的,这个水蛋白通道很窄,只允许单个水分子通过。小分子团水作为好水的重要标志是小分子团水在人体可以更快地分解为单个水分子进而更快参与其生理机能活动。  龙羚活泉净水器中天然麦饭石和木鱼石滤材,高能量天然陶瓷滤材能将水进行微电解,氢氧离子增加而成弱碱性,PH值7.5-7.8,经常饮用利于调节体质酸碱性,有助于抗防癌。水分子团也缩小至5-6个分子团,水分子的溶解力、渗透力加强,能更有效代谢细胞及血液中的垃圾废物,促进新陈代谢。  充满生命能量  龙羚活泉技术核心为&活&水,滤材中的高能量陶瓷滤芯释放的远红外线是比红外线的波长更长。其中4-14微米的波长是最适合生命生长,被科学家誉为生命光线。水与远红外线发生共振后变成了活化水,通过活化水使远红外线的能量在动植物和人类生命生长过程中发挥重要的作用,促使我们健康地生活且更有活力。活化水的生命力,使水重拾有益健康的能量,成为含氧量高的小水分子团活性六角水。负离子能中和且防止体内自由基所造成的破坏,达到抗氧化、抗老化、增强免疫系统、安定神经的作用。这种小分子团水也被称为能量水。  充满生命氧  氧是生命的燃料,拥有越多,身体能越好的行使职能,越健康。大部分人认为我们只吸入了空气中的氧气,但事实上溶解于水里的氧气会更加直接地进入了我们的细胞。我们饮用水中的氧气30秒可以到达血液;1分钟到达大脑;10分钟到达皮肤;20分钟到达肝脏、心脏和肾!小分子团活水的携带的氧比普通大分子团水更多,而且由于小分子团水渗透快,它们携带的氧也更容易进入细胞,增加体内的氧含量。  龙羚活泉净水器此次登录京东众筹平台,旨在让更多的人享受科技的力量,远离种种污染和伤害,重新饮用健康的水。京东金融对于筹资人的背景和诚信度进行严格的审核和筛选,筹得的资金也会实行监控,确保你投入的每一笔筹款都能专款专用。  详情可进入京东众筹了解更多://details/7980.htmlAndroid应用程序获得root权限 - 凌乱的碎片~ - ITeye博客
博客分类:
Android应用程序获得root权限
原文:()
我在博文《》中提到两种让root权限的办法。最近在网上发现很多朋友转载那篇文章,但是对那篇文章中提到的第一种方法怎样实现,不是很明白。本文将会以一个例子实现来演示怎样让一个Android应用程序获得root权限。
我遇到的问题是我想在Java应用程序中动态mount一个NFS的系统,但是执行mount命令必须要要root权限才可以。一般情况下,在Android的Java层是不能获得root权限的。
我在博文《》中提到两种思路:
1、实现一个init实现一个Service,来帮助Android应用程序执行root权限的命令。 2、实现一个虚拟设备,这个设备帮助Android应用程序执行root权限的命令。
本文将会选择第一种来解决Android应用程序mount NFS文件系统的问题。
在Android系统init.rc中定义很多Service,具体定义格式可以参考《》中的“Android Init Language”。Init.rc中定义的Service将会被Init进程创建,这样将可以获得root权限。
现在问题是Android应用程序怎样启动让init进程知道我们想运行那个进程呢?答案是设置系统属性“ctl.start”,把“ctl.start”设置为你要运行的Service,假设为“xxx”,Android系统将会帮你运行“ctl.start”系统属性中指定的Service。那么运行结果init进程将会将会写入命名为“init.svc.+Service名称”的属性中,也就是“init.svc.xxx”属性,应用程序可以参考查阅这个值来确定Service执行的情况。想更深入了解Android property系统可以参考博文《》。
难道Android属性“ctl.start”是所有进程都可以设置的吗?那世界不就乱套了,谁都可以可以执行init.rc中Service了,查看property_service.c中的源码,设置Android系统属性的函数为handle_property_set_fd:
1: void handle_property_set_fd(int fd)
switch(msg.cmd) {
case PROP_MSG_SETPROP:
msg.name[PROP_NAME_MAX-1] = 0;
msg.value[PROP_VALUE_MAX-1] = 0;
if(memcmp(msg.name,"ctl.",4) == 0) {
if (check_control_perms(msg.value, cr.uid, cr.gid)) {
handle_control_message((char*) msg.name + 4, (char*) msg.value);
ERROR("sys_prop: Unable to %s service ctl [%s] uid: %d pid:%d\n",
msg.name + 4, msg.value, cr.uid, cr.pid);
从源码中我们发现如果设置“ctl.”开头的Android系统property,将会调用check_control_perms函数来检查调用者的权限,其定义如下:
1: static int check_control_perms(const char *name, int uid, int gid) {
if (uid == AID_SYSTEM || uid == AID_ROOT)
/* Search the ACL */
for (i = 0; control_perms[i]. i++) {
if (strcmp(control_perms[i].service, name) == 0) {
if ((uid && control_perms[i].uid == uid) ||
(gid && control_perms[i].gid == gid)) {
我们发现root权限和system权限的应用程序将会授权修改“ctl.”开头的Android系统属性。否则将会检查control_perms全局变量中的定义权限和Service。
如果想更深入的了解Android Init进程和Android Property的权限控制,请参考《》。
通过上面的介绍我们基本已经有思路了,下面以上面提出的mount nfs文件系统为例说明:
1、首先定义一个执行mount的脚本,我把它于/system/etc/mount_nfs.sh,定义如下:
1: #!/system/bin/sh
3: /system/bin/busybox mount -o rw,nolock -t nfs 192.168.1.6:/nfs_srv /data/mnt
2、在init.rc中加入一个Service定义,定义如下:
1: service mount_nfs /system/etc/mount_nfs.sh
3、让自己的应用程序获得system权限,博文《》中提到了怎样获得system权限,请参考,这里就不赘述了。
4、在自己应用程序中设置System系统属性“ctl.start”为“mount_nfs”,这样Android系统将会帮我们运行mount_nfs系统属性了。这里需要强调的是不能够调用,这个函数只是修改JVM中的系统属性。而不能修改Android的系统属性。可以调用android.os.SystemProperties(Android 2.1 Eclair系统可以调用这个API),如果你的Android版本不能调用这个类,只能通过JNI,调用C/C++层的API property_get和property_set函数了。如果想详细了解请参考《》。代码如下:
1: SystemProperties.set("ctl.start", "mount_nfs");
5、最后在自己应用程序中,读取“init.svc.mount_nfs”Android系统Property,检查执行结果。代码如下:
1: while(true)
mount_rt = SystemProperties.get("init.svc.mount_nfs", "");
if(mount_rt != null && mount_rt.equals("stopped"))
Thread.sleep(1000);
}catch(Exception ex){
Log.e(TAG, "Exception: " + ex.getMessage());
init进程维护一个service的队列,所以我们需要轮训来查询service的执行结果。
通过上面的这些步骤,Android应用程序就能够调用init.rc中定义的Service了。这样你的Android应用程序也就获得了root权限。
通过上文可以看出,在Android获得root权限还是需要一些前提的,比如:
1、必须是Android系统开发人员,否则你无法修改init.rc等文件。 2、你的应用程序必须要获得system权限。
这样可以防止root权限被应用程序无限制的使用,最终危及Android系统安全。
希望本文对你能有所帮助,如果有错误之处敬请指正。
地球小野花
浏览: 130556 次
来自: 马赛大回旋
楼主请教一下,如果我添加packages/MSystemUI/ ...
太感谢了 哈哈
应该比较大吧 还是自己编译吧 但是我的ubuntu是装的wub ...
gzfreeman 写道请问用了多长时间?几个小时。具体没计算 ...
bluishoul 写道求镜像 呵呵 bluishoul@gm ...}

我要回帖

更多关于 我的心一片凌乱凌乱 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信