工作总结
2013-02-02 10:10
183 查看
android4.0强制横屏竖屏
修改文件PATH:android4.0/frameworks/base/services/java/com/android/server/wm/WindowManagerService.java
修改以下方法
int computeForcedAppOrientationLocked() {
int req = getOrientationFromWindowsLocked();
if (req == ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) {
req = getOrientationFromAppTokensLocked();
}
// req = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; //强制横屏0度
// req = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; //强制竖屏左转90度
return req;
}
去除android系统中休眠和锁屏
1.去除休眠
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<integer name="def_screen_off_timeout">60000</integer>
60000ms,修改为-1。-1代表0xffffffff,等于永远不要休眠了
2.去除锁屏
Frameworks/base/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java
private boolean mExternallyEnabled = true
将mExternallyEnabled 修改为false,就可以默认不启动锁屏
修改背光亮度和自动旋转
1. 找到display_settings.xml
<!--<com.android.settings.BrightnessPreference
android:key="brightness"
android:title="@string/brightness"
android:dialogTitle="@string/brightness" />-->
// 背光的调用入口
<!--<CheckBoxPreference
android:key="accelerometer"
android:title="@string/accelerometer_title"/>-->
//重力感应的调用入口
2. 注释重力感应的实现DisplaySettings.java
查找关键字 accelerometer 注释和它相关的代码就可以了。
3.accessibility_settings.xml
<!--<CheckBoxPreference
android:key="toggle_auto_rotate_screen_preference"
android:title="@string/accelerometer_title"
android:persistent="false"
android:order="3"/>-->
4.辅助功能
AccessibilitySettings.java
搜索 toggle_auto_rotate_screen_preference关键字
一,修改按键音:
1、frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
函数: private void loadSystemSettings(SQLiteDatabase db)
中加入这个:
loadBooleanSetting(stmt, Settings.System.SOUND_EFFECTS_ENABLED,
R.bool.def_sound_effects_enables);
2、frameworks/base/packages/SettingsProvider/res/values/defaults.xml
最后加入:
<bool name="def_sound_effects_enables">false</bool>
去掉快速关机选项:
packages/apps/Settings/res/xml/accessibility_settings.xml
<CheckBoxPreference
android:key="ipo_setting"
android:title="@string/ipo_title"
android:summaryOn="@string/ipo_summary_on"
android:summaryOff="@string/ipo_summary_off"
android:persistent="false"
android:order="8" />
默认关闭:
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
loadBooleanSetting(stmt, Settings.System.IPO_SETTING,
R.bool.def_ipo_setting);
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<bool name="def_ipo_setting" translatable="false">true</bool>
Android adb 获取root权限
(1) 自己编译的Android 中,adb shell后 自动获取root权限(即显示#而不是$):
方法:
修改./default.prop
把ro.secure设为0,persist.service.adb.enable设为1,adbd进程就会以root用户的身份启动。原理请看以下转载文章。
(2)其他程序要获得root权限(无GUI确认):
需要使用完全自由的su程序,改造自Superuser的su源码– 无限制无管理功能的su(https://github.com/wendal/android_su),这里提供的su,去掉了GUI确认等繁琐操作,任何程序都可以无提示获取root权限,自行添加的话,请确保所在分区支持suid,并设置su的权限为6777。(引用自:让你的Android彻底裸奔吧!!
— 瘫痪Android的安全机制 http://wendal.net/321.html)
GeminiPhone.java/PhoneBase.java中提供了一个API: invokeOemRilRequestStrings(),通过该API可以将具体的at cmd命令下发并将命令执行结果返回给上层。
Demo code如下:
查询IMEI号
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.gemini.GeminiPhone;
Phone phone;
phone = PhoneFactory.getDefaultPhone();
String ImeiString[]=new String[2];
ImeiString[0] = {"AT+EGMR=0,7"};
ImeiString[1] = {"+EGMR"}; //第二个string必须有,且名字是此AT名字,主要给rild用,不会下给modem;否则不会通过此channel返回上来response
((GeminiPhone) phone).invokeOemRilRequestStrings(ImeiString,mHandler.obtainMessage(EVENT_GET_IMEI_DONE_1));
public void handleMessage(Message msg) {
switch (msg.what)
{
case EVENT_GET_IMEI_DONE_1:
ar = (AsyncResult)msg.obj;
Log.d (LOG_TAG, "mHandler.handleMessage() : EVENT_GET_IMEI_DONE_1");
if (ar.exception == null) {//成功
Log.d(LOG_TAG, "ar.exception == null");
String[] newIMEI=(String[])(ar.result);
StringBuilder sb=new StringBuilder();
for(int i=0;i<newIMEI.length;i++)
sb.append(newIMEI[i]);
Log.d("jby","newIMEI is : " +sb);
}
else
Log.d(LOG_TAG, "ar.exception != null");//失败
break;
}
}
修改文件PATH:android4.0/frameworks/base/services/java/com/android/server/wm/WindowManagerService.java
修改以下方法
int computeForcedAppOrientationLocked() {
int req = getOrientationFromWindowsLocked();
if (req == ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) {
req = getOrientationFromAppTokensLocked();
}
// req = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; //强制横屏0度
// req = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; //强制竖屏左转90度
return req;
}
去除android系统中休眠和锁屏
1.去除休眠
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<integer name="def_screen_off_timeout">60000</integer>
60000ms,修改为-1。-1代表0xffffffff,等于永远不要休眠了
2.去除锁屏
Frameworks/base/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java
private boolean mExternallyEnabled = true
将mExternallyEnabled 修改为false,就可以默认不启动锁屏
修改背光亮度和自动旋转
1. 找到display_settings.xml
<!--<com.android.settings.BrightnessPreference
android:key="brightness"
android:title="@string/brightness"
android:dialogTitle="@string/brightness" />-->
// 背光的调用入口
<!--<CheckBoxPreference
android:key="accelerometer"
android:title="@string/accelerometer_title"/>-->
//重力感应的调用入口
2. 注释重力感应的实现DisplaySettings.java
查找关键字 accelerometer 注释和它相关的代码就可以了。
3.accessibility_settings.xml
<!--<CheckBoxPreference
android:key="toggle_auto_rotate_screen_preference"
android:title="@string/accelerometer_title"
android:persistent="false"
android:order="3"/>-->
4.辅助功能
AccessibilitySettings.java
搜索 toggle_auto_rotate_screen_preference关键字
一,修改按键音:
1、frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
函数: private void loadSystemSettings(SQLiteDatabase db)
中加入这个:
loadBooleanSetting(stmt, Settings.System.SOUND_EFFECTS_ENABLED,
R.bool.def_sound_effects_enables);
2、frameworks/base/packages/SettingsProvider/res/values/defaults.xml
最后加入:
<bool name="def_sound_effects_enables">false</bool>
去掉快速关机选项:
packages/apps/Settings/res/xml/accessibility_settings.xml
<CheckBoxPreference
android:key="ipo_setting"
android:title="@string/ipo_title"
android:summaryOn="@string/ipo_summary_on"
android:summaryOff="@string/ipo_summary_off"
android:persistent="false"
android:order="8" />
默认关闭:
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
loadBooleanSetting(stmt, Settings.System.IPO_SETTING,
R.bool.def_ipo_setting);
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<bool name="def_ipo_setting" translatable="false">true</bool>
Android adb 获取root权限
(1) 自己编译的Android 中,adb shell后 自动获取root权限(即显示#而不是$):
方法:
修改./default.prop
把ro.secure设为0,persist.service.adb.enable设为1,adbd进程就会以root用户的身份启动。原理请看以下转载文章。
(2)其他程序要获得root权限(无GUI确认):
需要使用完全自由的su程序,改造自Superuser的su源码– 无限制无管理功能的su(https://github.com/wendal/android_su),这里提供的su,去掉了GUI确认等繁琐操作,任何程序都可以无提示获取root权限,自行添加的话,请确保所在分区支持suid,并设置su的权限为6777。(引用自:让你的Android彻底裸奔吧!!
— 瘫痪Android的安全机制 http://wendal.net/321.html)
MTK如何在java层直接下发at cmd
GeminiPhone.java/PhoneBase.java中提供了一个API: invokeOemRilRequestStrings(),通过该API可以将具体的at cmd命令下发并将命令执行结果返回给上层。Demo code如下:
查询IMEI号
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.gemini.GeminiPhone;
Phone phone;
phone = PhoneFactory.getDefaultPhone();
String ImeiString[]=new String[2];
ImeiString[0] = {"AT+EGMR=0,7"};
ImeiString[1] = {"+EGMR"}; //第二个string必须有,且名字是此AT名字,主要给rild用,不会下给modem;否则不会通过此channel返回上来response
((GeminiPhone) phone).invokeOemRilRequestStrings(ImeiString,mHandler.obtainMessage(EVENT_GET_IMEI_DONE_1));
public void handleMessage(Message msg) {
switch (msg.what)
{
case EVENT_GET_IMEI_DONE_1:
ar = (AsyncResult)msg.obj;
Log.d (LOG_TAG, "mHandler.handleMessage() : EVENT_GET_IMEI_DONE_1");
if (ar.exception == null) {//成功
Log.d(LOG_TAG, "ar.exception == null");
String[] newIMEI=(String[])(ar.result);
StringBuilder sb=new StringBuilder();
for(int i=0;i<newIMEI.length;i++)
sb.append(newIMEI[i]);
Log.d("jby","newIMEI is : " +sb);
}
else
Log.d(LOG_TAG, "ar.exception != null");//失败
break;
}
}
相关文章推荐
- 新工作两个月,总结下
- 工作中所遇到的异常排错总结
- [工作问题总结]window.open导致IE自动关闭问题总结[2]
- TLD的源码整理总结工作—检测篇
- 2016年工作总结
- 第二阶段个人工作总结05
- MySQL数据库工具的使用-在公司最近十天的工作内容总结(六)
- 工作几个月了,是时候对自己的技术来个总结了!
- Pig 读书笔记 + 工作总结(干货很多)
- 二十六个月Android学习工作总结
- 阿里90后运营的工作总结,细致而深刻!
- 12-9工作总结
- 工作总结_细节
- 工作常识总结
- 程序猿找工作必练内功:排序算法大总结(三)——堆排序算法
- [工作问题总结]IE6 缓存引起的页面无法重载问题及解决方案
- 工作过程中一些信息获取方式的总结
- 2013年工作总结
- 最近工作总结。
- 入职工作总结5-10 ~ 6-20