众所周知,s60自第三版开始,有了大家所不屑的权限问题,也就是很多人迷茫的签名问题、证书问题,随之而来也产生了相当多的误会,例如A4的破解问题,是否大家对权限问题有了清晰地认识呢?此文来带大家一起进入权限的世界,共同探讨什么是symbian的权限。
首先引用官方的内容(由于symbian 9.x实在太长,直接用s60简写,uiq的其实也一样)。
官方是这样说权限的,一共分了19级:
1、NetworkServices:用于使用移动网络,例如:拨打电话或发送文本消息。
2、LocalServices:用于通过USB、红外和蓝牙发送或接收消息。
3、ReadUserData:准许读取用户数据。系统服务器和应用引擎可以自由地对他们的数据施加这一限制。
4、WriteUserData:准许写入用户数据。系统服务器和应用引擎可以自由地对他们的数据施加这一限制。
5、Location:准许访问手机的位置信息。
6、UserEnvironment:准许访问用户及其附近环境的实时保密信息。
7、PowerMgmt:准许在系统中中断任何进程或者转换机器状态(关掉设备)。
8、SwEvent:准许生成或者捕获键盘以及笔输入事件。
9、ReadDeviceData:准许读取系统设备驱动数据。
10、WriteDeviceData:准许写入系统设备驱动数据。
11、SurroundingsDD:准许访问提供外围设备输入信息的逻辑设备驱动。
12、TustedUI:区分"normal"应用和"trusted"应用的UI。当一个"trusted"应用在屏幕上显示内容时,一个"normal"的应用不能伪造它。
13、rotServ:准许服务器应用可以用一个受保护的名字进行注册。受保护的名字以"!"开头。 NetworkControl:准许修改或者访问网络协议控制。
14、MultimediaDD:准许对所有多媒体设备驱动(声音、摄像头等)的访问。
15、DRM:准许访问DRM保护的内容。
16、TCB:准许在终端中访问/sys以及/resource目录。
17、CommDD:准许访问通信设备驱动。
18、DiskAdmin:准许进行硬盘管理操作,例如格式化驱动器。
19、AllFiles:准许系统中的所有文件可见,而且还可对在/private下的文件进行写操作。
看下来,头大了吧,一样,我也头大,但是为了把权限说清楚,我还要把头缩小回来,办法就是不看这19条了……
不看这19条,我们怎么了解权限呢?
跳过权限的具体内容,我们直接看权限的级别。官方把权限分成了19类,有人会发现,越往后的权限,能力越高,可以实现对底层硬件的访问,直至对系统核心文件的访问;当然看不出这些,对我们了解权限也没大问题,毕竟此文只是科普,不做深层研究。
现在我们知道s60的权限分19层,从1到19,一层比一层高。这个高怎么理解呢,用官阶来作比方吧,例如权限1是普通士兵,只能做小兵才能做的事,并且绝无越权之说,士兵不可能有司令的权力,否则岂不乱套了,小兵指挥司令;而权限2呢,就是班长了,能做更多的事,依次类推,权限19就该是司令啦。
知道了权限的级别,对我们实际应用有什么帮助呢?
这就是实际应用的重点了!
权限对应的就是证书,证书是有分类的,分为通用证书、开发者证书、官方高权限证书、PID证书等(关于证书的称呼,可能会有误差,大的方向是没问题的)。我们也没必要详细记住证书有多少种,只要知道证书按照权力大小分了几种就成。
证书和权限是对照的,开发者证书有前13项权限,官方证书有前17项权限,PID证书有前19项权限,通用证书权限肯定少于13项,但是具体记不清了。
知道权限了,知道证书了,后面装软件的问题就好说了。
装软件的时候经常遇到证书错误,这是有说法的。
s60第三版开始,安装软件的时候,手机会对软件做检查,检查软件的能力和所具有的权力是否相等。等价于手机系统每个权限都有个检查站,有人站岗检查。你没这个级别,证书错误,靠边站。这里要扩展一下,说说能力和权力问题。
前面说了,士兵不能越级,不能做司令才能做得事,但是如果士兵能力具备了做司令的条件,手机系统会允许士兵当司令吗?答案是否定的,除非……对,除非有了证书!有的软件要求比较高的权力,例如司令权力,但是他的级别只是班长级别(说的比较极端,但是便于理解)。我们前面说过手机系统肯定不允许班长越级,所以装此软件的时候,手机会提示证书错误。
想让士兵当司令,除非你拿出证明来!有请证书!证书就是士兵的委任状!班长手持司令委任状,那不就是一司令嘛!
手机系统一看,有司令委任状,”司令首长好“,”恩,同志们辛苦了“!于是软件就能顺利通过权限检查,通过检查站,然后在本权限范围内想干嘛干嘛。
这种赋予委任状就是给软件进行签名,至于软件怎么被签名的,过程不究,我们只了解大概。只要你有证书,想装什么软件,只管给软件签名。签名了,就等于给软件发了一份委任状,软件就可以走马上任了。当然,要是软件本身就已经是司令级别了,你发个委任状也是没用的。
说到这里,还没完。(你怎么还没完啊……)
既然是委任状,人上任当官了,总会有退休那一天吧。所以这个委任状,也就是证书还涉及一个时间问题,就是证书有时效,在这个时间内有效,一旦超过这个期限,抱歉,司令委任状也没用了!
最早的开发者证书的时效可以用一句歌词来表示——“我等你,半年为期”;通用证书一般是20年……20年,够我换多少手机了……;后来的开发者证书是3年有效。至于PID证书,也就是司令委任状的时间……我也不知道,反正现在、短暂的将来能用就成。
人是会退休的,但软件不是人,所以过期也能用!
一旦证书超过时效,也不是彻底不能用,可以用简单的办法绕过时效问题,那就是改系统时间,直接调到证书有效期内,装好软件,让软件进入对应的检查站,进入软件工作岗位,再关门放狗把系统时间改回来,还不影响软件工作!
能耐心看到最后,说明对证书权限签名还不是特了解,再告诉你点比较无趣的吧。
那就是证书和手机必须是一一对应的,一个手机,准确说是一个imei和一个证书是对应的,不能混用。委任状上肯定有名字,任命谁谁谁当什么什么,没名字岂不是空头票了,乱开空头司令可不是闹着玩的!
有了委任状,有了软件,想装什么装什么吧!当然没有委任状,也不是办不成事,具体该怎么操作,以后再说