为提高访问的效率,建立了cache,只有当cache中找不到时,才会调用去查询.db数据库 。
具体的.db中包括的数据库表有:
关键的表中的数据有:
一般通过修改.xml和make中的配置文件即可 。
7、About Phone .
About Phone中的一些关键属性通过.sh来焊接(make - build),经过测试,可修改alps\build\tools\.sh来修改显示的情况,整理一下如下:
修改echo "ro.build..id=$",把$修改成其他的名称可改变Build .注意此时要去除$.
修改echo "ro..model=$",把 $修改成其他的名称可改变Model .注意此时要去除$
修改echo "ro.build..=2.1" ,中的2.1可改变显示的 ,这个不建议修改 。
直接写在modem.img中,开机后modem自动推送到端,需要专门的tool才能修改 。
为linux编译过程中产生,按照标准的linux格式生成(.h),最后版本信息写在文件/proc/下,所有的版本信息即在该文件的第一行,然后使用了一个正则表达式过滤了版本信息中一些字符 。
8、About USER Build and Eng Build
在UserEng版本中自由切换 。
郑重声明:在出厂正式版本的时候,请务必关闭该,不然将导致机器异常容易被root.
1.首先说明一下User Eng版本之间的差异
eng This is the. A plain make is the same as make eng.
?with: eng, debug, user, and/or .
?non-APKthat have no tags .
?APKsto thefiles, intoAPKs.
? ro.=0
? ro.=1
? ro...=1
? adb isby .
?is
user make user
This is theto be the finalbits.
?with user.
?non-APKthat have no tags .
?APKsto thefiles; tags arefor APK .
? ro.=1
? ro.=0
? adb isby .
?dex pre- for allinto speed upfirst boot-up
make
The same as user, :
? Alsowith debug.
? ro.=1
? adb isby .
2.从安全角度来将,其差别主要是四个 的设置,在正常情况下,如果不更新boot image,那么
ro.
ro.allow.mock.
ro.
是无法被修改的,即在编译的时候就已经决定了
3.要使得这几个值能够被修改,那么必须修改 的实现,的实现上,是,上次实现是.c,需要修改的地方有两处 。
3.1 函数中,增加下面一段,放在这个函数的最前面
//add for user -> root
if(!(name,"ro.") || !(name,"ro.allow.mock.") || !(name,"ro.") || !(name,"..adb.")){
1;
3.2 函数中屏蔽
/* ro.*may NEVER beonce set */
//for user -> root
// if(!(name, "ro.", 3))-1;
至此,我们已经完全开放了中这四个的控制权,当然如果您还想稍微加以控制,您可以增加pid, uid等的控制,减小这个权限范围 。
4.编写一个,来实现自由调控,您可以创建一个简单的,里面包括这个即可 。
package com.example.user2root;import android.app.Activity;import android.os.Bundle;import android.os.SystemProperties;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;/**** This is a demo for User To Root.* If you use this app, you MUST open system properties write security.**/public class User2rootActivity extends Activity {/** Called when the activity is first created. */private Button mRootButton;private Button mUserButton;private static final String RO_SECURE = "ro.secure";private static final String RO_ALLOW_MOCK_LOCATION="ro.allow.mock.location";private static final String RO_DEBUG = "ro.debuggable";private static final String ADB_ENABLE = "persist.service.adb.enable";private OnClickListener mRootListener = new Button.OnClickListener(){@Overridepublic void onClick(View v) {SystemProperties.set(ADB_ENABLE, "1");SystemProperties.set(RO_SECURE, "0");SystemProperties.set(RO_ALLOW_MOCK_LOCATION,"1" );SystemProperties.set(RO_DEBUG, "1");Toast.makeText(User2rootActivity.this, "Update to Root Success", Toast.LENGTH_LONG).show();}};private OnClickListener mUserListener = new Button.OnClickListener(){@Overridepublic void onClick(View v) {SystemProperties.set(ADB_ENABLE, "0");SystemProperties.set(RO_SECURE, "1");SystemProperties.set(RO_ALLOW_MOCK_LOCATION,"0" );SystemProperties.set(RO_DEBUG, "0");Toast.makeText(User2rootActivity.this, "Update to User Success", Toast.LENGTH_LONG).show();}};protected void findViews(){this.mRootButton = (Button) this.findViewById(R.id.root);this.mUserButton = (Button) this.findViewById(R.id.user);}protected void setActionListener() {this.mRootButton.setOnClickListener(this.mRootListener);this.mUserButton.setOnClickListener(this.mUserListener);}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);this.findViews();this.setActionListener();}}
- 提升你的Android开发技能:从AR/VR沉浸到UI设计和故障排除
- 物联网专业课程设计:温室监控系统——移动终端篇(LineChart、SQLite
- 物联网专业课程设计:温室监控系统——上位机篇(串口通信、SQL sever数据库
- 鸿蒙兼容x86嘛,阻击鸿蒙OS,谷歌联手三星推全新系统,兼容X86和ARM
- 2022年 信息系统项目管理师 —— 第 5 章 项目范围管理
- Android studio:Connection failed 网络配置错误
- 九 《嵌入式系统原理与应用》 | ADC 知识梳理
- 琴琪拉吉他 团队Android小作品Chinchilla Guitar发布
- 基于Android的电子书阅读器(Android studio毕业设计
- 嵌入式系统原理与应用入门