我想访问系统模型以获取主注册ID。如何在Android应用程序中安装SWI处理程序
表是我学习,应该有三个步骤:
- 进入从用户模式管理模式,通过
SWI
指令 - 切换到系统模式使用
MSR
指令在超级模式 得到主通过调用以下代码在系统模式下注册ID:
MRC p15, 0, R0, c0, c0, 0
我想在Android操作系统中实现它。确切地说,我想在我的应用程序运行时获得主注册ID。
现在我坚持如何安装我的SWI处理程序。
根据ARM doc,当我在Android上测试它时,会创建一个异常。
是否有人遇到同样的问题,解决它帮到底〜
PS:
/*
* my install handler code
*/
unsigned installHandler(unsigned location, unsigned *vector) {
unsigned vec, oldVec;
vec = (location - (unsigned) vector - 0x8) | 0xe59ff000;
oldVec = *vector;
*vector = vec;
return oldVec;
}
我的猜测是Android OS不允许应用程序安装SWI处理程序,因为这会破坏安全模型。应用程序不应该能够在管理员模式下运行自己的代码。另外请注意,他的OS可能已经安装了SWI处理程序来处理系统调用。 –