6572平台加入系统权限后启动不了应用的原因

来源:互联网 发布:日照淘宝客服 编辑:程序博客网 时间:2024/06/13 01:06

在mtk6527平台上面的工程需要开启背光灯的读写,也就是开关的权限。那么就想着在Androidmanifest.xml文件当中加入系统权限:Android:sharedUserID="android,uid,system"了,编译也是ok的。但是在刷机运行时候出现只能进入到启动logo的部分,在没有抓log的情况下只能知道这么多了,总之就是Android应用没有跑起来,之前一直没有抓取log分析,直到今天通过eclipse看了log才知道,原因是Android应用初始化阶段有读取sdcard卡的逻辑,发现报错原因也是在这部分。接着就是测试注释掉sdcard卡的情况下看是否能够运行起来想要的效果(应用层开关lcd背光),果然,就是因为sdcard卡的读取和系统权限有冲突导致的。

    问题是找到了,那怎么修改呢?通过查找资料发现了这个方法:http://blog.csdn.net/tkwxty/article/details/43459365

以及相关的一些问题解答:http://blog.csdn.net/sz_chrome/article/details/7390368

http://blog.csdn.net/Templar1000/article/details/18084307?locationNum=15

http://www.360doc.com/content/14/1005/01/6359190_414464605.shtml

看了后面三个相关解决方式,大致都一样,即framew里面将sdcard的读写分类了,有 sdcard-rw 和media-rw ,这样的话就必须加入这个权限:

  1. <permission name="android.permission.WRITE_MEDIA_STORAGE" >  
  2.     <group gid="media_rw" />  
  3. </permission> 
而之前查看过lcd背光,即sys/clss/leds/lcd-backlight下面的lcd-backlight对于group是media -rw 而对于others的权限是r-- ,我认为原因很可能在于此。当然这个只是对应了为什么不能够读写sdcar的原因,与我遇到的问题不是绝对相关的。
那么为什么会出现加了权限就和sdcar卡的读写出现冲突呢?http://blog.csdn.net/tkwxty/article/details/43459365 这个方法里面也没有说出原因,只是这样修改了Volum.cpp文件里相应部分。
具体这样:
1.进入Android源码/system/vold/Volume.cpp 文件(路径可能为/system/core/vold/Volume.cpp,但我的6572下面是前者)
     2.. 将Fat:doMount(devicePath, "/mnt/secure/staging", false, false, false,
                AID_SYSTEM, gid, 0702, true)修改成为
                Fat::doMount(devicePath, "/mnt/secure/staging", false, false, false, 
                1000, 1015, 0002, true))

并且注意,在编译的时候不能够按照他说的只编译 Android系统部分,因为我当初make了Android部分,但是刷机后没有效果,后来是remake后才能将问题解决。



0 0
原创粉丝点击