应用能够配置Android系统的各种设置,这些设置的默认值都是由frameworks中的SettingsProvider从数据库中读取的frameworks/base/packages/SettingsProvider/res/values/defaultsxml这个文件就是用来存储默认值的
Android 系统设置中的默认设置如下所示:
<integer name="def_screen_off_timeout">600000</integer>设置关屏超时时间的默认值
<integer name="def_screen_brightness">102</integer> 设置亮度的默认值
<bool name="def_install_non_market_apps">false</bool>设置是否允许安装非Market应用程序的默认值
开机:
android-logo-maskpng
android-logo-shinepng
这两个一个在上一个在下
/out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes/assets/images/android-logo-shinepng
/frameworks/base/core/res/assets/images/android-logo-shinepng
注意:如果源码没有make可以直接更改frameworks里的的就可以了
然后直接make否则必须全更改并且不能make只能make firmwar
默认开机墙纸的位置:
default_wallpaperjpg
/out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates/classes/res/drawable/default_wallpaperjpg
/frameworks/base/core/res/res/drawable/default_wallpaperjpg
注意:这个设置和上面的一样这俩个都不能更改文件名
更改PC机器删除硬件的文字kernel中
drivers/usb/gadget/f_mass_storagec
fsg->vendor = "XXXXXXXXXXXXX";
更改卷标:
bootable/recovery/etc/initrc
setprop UserVolumeLabel "XXXXXXXXXXXXX"
直接打包
修改屏幕锁:
(1)frameworks/base/packages/SettingsProvider/res/values/defaultsxml
<integer name="def_screen_off_timeout">60000</integer>
60000改成想要的时间如果是不锁为-1 (2)frameworks/policies/base/phone/com/android/internal/policy/impl/KeyguardViewMediatorjava
private boolean mExternallyEnabled = true;
将其修改成false,这样更改就不会再进入休眠状态了
设定初始化主页:
package/app/Browser/res/values/Stringxml
655行
后面的应该是书签里的
设定亮度0~255:
frameworks/base/packages/SettingsProvider/res/values/defaultsxml
def_screen_brightness-->这个值初始化好像是100多
音量:
frameworks/base/media/java/android/media/AudioManagerjava
数组DEFAULT_STREAM_VOLUME第4个值(最大我设置到30但是还是差2格才到最大--默认是11
建议将数组里的所有的数值都设为最大就OK了)
设置Google帐户,左上角提示“正在设置RK2818SDK”,要求改成“正在设置W9”:
out\target\product\sdkDemo\root 中defaultprop文件第13行
roproductmodel=rk2818sdk 改为 roproductmodel=W9
录音没有小时显示。要求增加:
packages\apps\SoundRecorder\src\com\android\soundrecorder
(1)SoundRecorderjava中: private void updateTimerView()
把 String timeStr = Stringformat(mTimerFormat, time/60, time%60);
改为:long hour=time/3600;
String timeStr = Stringformat(mTimerFormat, hour, (time-hour3600)/60, time%60);
(2) \res\values中stringsxml改为:
<string name="timer_format"><xliff:g id="format">%02d:%02d:%02d</xliff:g></string>
去掉Bluetooth:
(主界面->添加文件夹->Bluetooth received)
ic_launcher_folder_bluetoothpng(7272):
在\packages\apps\Bluetooth\res\drawable-hdpi
解决方法:删除\out\target\product\sdkDemo\system\app下的Bluetoothapk
充电锁屏时:
frameworks\base\core\res\res\drawable-hdpi:ic_lock_idle_chargingpng
去掉锁屏时显示充电百分比在:
frameworks\base\core\res\res\values-zh-rCN中stringsxml 的lockscreen_plugged_in 括号中的内容及括号 !!
去掉动态桌面背景选项:
packages\wallpapers\Basic 中AndroidManifestxml的<service>这些,如星系注释掉如下这些:
<service
android:label="@string/wallpaper_galaxy" android:name="comandroidwallpapergalaxyGalaxyWallpaper"
android:permission="androidpermissionBIND_WALLPAPER">
<intent-filter>
<action android:name="androidservicewallpaperWallpaperService" />
</intent-filter>
<meta-data android:name="androidservicewallpaper" android:resource="@xml/galaxy" />
</srvice>
更改版本号:
build/core/Makefile
79行
RK_VER := xxx
更改界面布局
位置:package/app/Launcher2/res/xml/default_workspacexml
注意:adb shell 里当你点击任意的一个apk的时候,在后台会输出
I/ActivityManager( 728): Starting activity: Intent { act=androidintentactionMAIN cat=[androidintentcategoryLAUNCHER] flg=0x10200000 cmp=comestrongsandroidpop/viewFileExplorerActivity bnds=[294,373][393,478] }
I/WindowManager( 728): Setting rotation to 1, animFlags=0
看上面“cmp=comestrongsandroidpop”的部分就可以找到/前是包名/后面是类名-->这个是在default_workspacexml里面需要用到的
launcher:packageName="comandroidbrowser"
launcher:className="comandroidbrowserBrowserActivity"
如何将pdf类的文件放到桌面上
将自己制作的pdf帮助文档放置到桌面上使客人可以直接点击就浏览
String urlString = "/system/app/Nvsbl P4Dv2 English Manualpdf";
Intent intent = new Intent();
intentsetAction(androidcontentIntentACTION_VIEW);
intentsetDataAndType(UrifromFile(new File(urlString)),"application/pdf");
startActivity(intent);
finish();
解释下:
首先将pdf文档放到out/target/product/sdkDemo/system/app下
将固定地址给出urlString,使用Intent
intentsetAction(androidcontentIntentACTION_VIEW);启动View
intentsetDataAndType(UrifromFile(new File(urlString)),"application/pdf");
application/pdf可以指定别的格式包括音频,视频,等等但是没有试过有需要可以试试
注意:这个方法很不到如果只放置一些还可以但是如果放置文件比较大那么打包出来的
systemimg文件会很大也就是占用本身的系统内存----->所以不推荐使用
发现PIN解锁界面出现5秒之后就会自动进入睡眠,之后将无法再次解锁。目前解决方法:
修改文件 frameworks\policies\base\phone\com\android\internal\policy\impl\KeyguardViewMediatorjava
将如下这行:
protected static final int AWAKE_INTERVAL_DEFAULT_MS = 5000;
修改为:
protected static final int AWAKE_INTERVAL_DEFAULT_MS = 1000 60 5;
把安卓应用软件安装到安卓系统文件,即把安卓应用软件放到系统根目录system/app下 操作方法
准备工作:
一、开启ROOT权限。
ROOT方法:下载一键ROOT之类的软件,根据操作步骤进行,就可以获取ROOT权限了。
二、安装RE文件管理器。
清理系统自带应用
(一)、用RE打开系统根目录下的system/app,进行精简系统自带应用,注意,要对照一些总结可删减程序的文件,以免删错了导致系统故障。
(二)、根目录:preload目录下,可能会有系统的预装应用,不用的也可以全部删掉。
移动APK到system/app 目录
一、移动apk:用RE管理器把要安装的apk软件移动到/system/app 目录下。
在操作前,将/system/app 目录挂载为可读写;
注意软件名不要有中文 、空格及其他特殊字符等;
如果无法移动,显示空间不足时,可以先移动到data/app/下,再移动到/system/app;
二、修改apk权限: 对移动进来的apk软件更改权限,即改为:用户权限为 读+写,分组权限为 读,其他权限为 读。
三、提取 so文件:用RE提取apk软件中/lib/目录下的所有 so文件,将其移动到/system/lib中。
点击apk软件,用RE查看文件内容,即可找到 ,so文件。
四、修改 so文件权限:方法同上。
五、重启手机。在此过程中,可能加载的时间稍长点,请耐心等待即可。
除了下面的之外都可以删除。
Bluetoothapk
Bluetoothodex
BrcmBluetoothServicesapk
BrcmBluetoothServicesodex
Calculatorapk
Calculatorodex
Calendarapk
Calendarodex
CertInstallerapk
CertInstallerodex
ContactsProviderapk
ContactsProviderodex
CustomizationSettingsProviderapk
CustomizationSettingsProviderodex
CustomizationSetupapk
CustomizationSetupodex
DCSUtilityapk
DCSUtilityodex
DebugToolapk
DefaultContainerServiceapk
DefaultContainerServiceodex
DreyeForAndroidHtcCNMarvelapk
DrmProviderapk
DrmProviderodex
DroidWallapk
GSDapk
GSDodex
HtcAddProgramWidgetapk
HtcAddProgramWidgetodex
HTCAlbumapk
HTCAlbumodex
HTCCameraapk
HTCCameraodex
HtcClockWidgetapk
HtcClockWidgetodex
HtcContactsapk
HtcContactsodex
HtcDialerapk
HtcDialerodex
HtcFMRadioapk
HtcFMRadioodex
HtcLockScreenapk
HtcLockScreenodex
HtcMessageProviderapk
HtcMessageProviderodex
htcmsgwidgetsapk
htcmsgwidgetsodex
HtcMusicapk
HtcMusicodex
HtcPhotoWidgetapk
HtcPhotoWidgetodex
HtcProfileWidgetapk
HtcProfileWidgetodex
HtcSettingsProviderapk
HtcSettingsProviderodex
htcsettingwidgetsapk
htcsettingwidgetsodex
HTCSetupWizardapk
HTCSetupWizardodex
HtcSoundSetDownloadManagerapk
HtcSoundSetDownloadManagerodex
MediaProviderapk
MediaProviderodex
Mmsapk
Mmsodex
PackageInstallerapk
PackageInstallerodex
PCSCIIapk
PCSCIIodex
Phoneapk
Phoneodex
PluginManagerapk
PluginManagerodex
restartappapk
restartappodex
RootExplorerapk
Rosieapk
Rosieodex
Settingsapk
Settingsodex
SettingsProviderapk
SettingsProviderodex
Superuserapk
SystemUIapk
SystemUIodex
TelephonyProviderapk
TelephonyProviderodex
WorldClockapk
WorldClockodex
造成comandroidsettings已停止 报错有如下原因:
1是自己刷机后没有wipe,双清。或手机在线ota升级后没有自动双清,导致系统缓存混乱,所以报错。
2是用了某些同步工具,同步联系人,短信,通话记录,相册等导致的错乱问题。
3SIM卡上存储的信息问题。
4比如删除了系统必备apk,或者是替换了不同版本的apk,导致的错误。
一般解决办法:
1关机
2把sim卡拿出来
3不装sim卡重启机器
4重启之后,进入设置--更多--移动网络--网络运营商,
5选择后等待约30秒后,出现网络运营商,然后点自动选择
6关机
7插入sim卡,重启,问题解决
一、所需工具
1、APKTOOLS反编译工具;
2、配置JAVA环境;
3、Notepad++;
4、提取系统framework-resapk文件;
二、具体操作
1、因为framework-resapk是系统文件,我们需要首先加载系统环境,将framework-resapk放入APKTOOLS文件夹下进行加载。如图:
2、我们反编译framework-resapk文件。
3、反编译完成以后按路径打开 framework-res\res\values\ 文件夹下的 integersxml 文件,打开后如图:
4、找到:
<integer name="config_screenBrightnessSettingMinimum">20</integer>最低亮度
<integer name="config_screenBrightnessSettingMaximum">255</integer>最高亮度
<integer name="config_screenBrightnessSettingDefault">130</integer>开机默认亮度
<integer name="config_screenBrightnessDim">20</integer>变换值
5、我们修改好以后回编译、签名、替换即可。
:
反编译framework-resapk
打开\framework-res\res\values\integersxml
然后找到
<integer name="config_screenBrightnessSettingMinimum">
10</integer> 最低亮度
<integer name="config_screenBrightnessSettingMaximum">
255</integer> 最高亮度
<integer name="config_screenBrightnessSettingDefault">
102</integer> 开机默认亮度
<integer name="config_screenBrightnessDim"> 10</integer> 变暗值
手动修改最低亮度值即可,一般改为1。(0以下未尝试过)。
目的:在通话设置菜单下,添加一dect设置菜单,里面再添加一checkBOxPreference
来使能硬件模块。
-------------------------
目前做的项目,需要在系统settings里面添加一选项来使能硬件模块,里面涉及到的preference知识,请网上了解,这里记录下方法。
1,settings 应用一般在 目录:\packages\apps\Settings,我们先找到通话设置的布局位置,看看它在那个包路径下,进入\packages\apps\Settings\res\xml,打开settingsxml文件:
Java代码
<comandroidsettingsIconPreferenceScreen
android:key="call_settings"
settings:icon="@drawable/ic_settings_call"
android:title="@string/call_settings_title">
<intent
android:action="androidintentactionMAIN"
android:targetPackage="comandroidphone"
android:targetClass="comandroidphoneCallFeaturesSetting" />
</comandroidsettingsIconPreferenceScreen>
<comandroidsettingsIconPreferenceScreen
android:key="call_settings"
settings:icon="@drawable/ic_settings_call"
android:title="@string/call_settings_title">
<intent
android:action="androidintentactionMAIN"
android:targetPackage="comandroidphone"
android:targetClass="comandroidphoneCallFeaturesSetting" />
</comandroidsettingsIconPreferenceScreen>
android:targetPackage="comandroidphone"
android:targetClass="comandroidphoneCallFeaturesSetting"
targetPackage:表示包名,根据此我们可以找到通话设置的路径。
targetClass:表示此布局文件被那个类所引用,根据此类,我们可以知道在那个文件里面管理我们的通话设置功能。 www55zmcom
2根据包名,我们可以看到在\packages\apps\Phone 目录下,进入\res\xml目录下
找到通话布局文件:call_feature_settingxml,根据类名,很容易找到布局文件。
里面内容如下:
Java代码
<PreferenceCategory android:key="button_misc_category_key"
android:title="@string/other_settings"
android:persistent="false" />
<!-- Dect settings -->
<PreferenceScreen
android:key="dect_settings"
android:title="@string/dect_module_title"
android:summary="@string/dect_module_title" >
<intent
android:action="androidintentactionMAIN"
android:targetPackage="comandroidphone"
android:targetClass="comandroidphoneDectSettings" />
</PreferenceScreen>
<CheckBoxPreference
android:key="button_auto_retry_key"
android:title="@string/auto_retry_mode_title"
android:persistent="false"
android:summary="@string/auto_retry_mode_summary"/>
<PreferenceCategory android:key="button_misc_category_key"
android:title="@string/other_settings"
android:persistent="false" />
<!-- Dect settings -->
<PreferenceScreen
android:key="dect_settings"
android:title="@string/dect_module_title"
android:summary="@string/dect_module_title" >
<intent
android:action="androidintentactionMAIN"
android:targetPackage="comandroidphone"
android:targetClass="comandroidphoneDectSettings" />
</PreferenceScreen>
<CheckBoxPreference
android:key="button_auto_retry_key"
android:title="@string/auto_retry_mode_title"
android:persistent="false"
android:summary="@string/auto_retry_mode_summary"/>
Dect setting 就是新添加进入的设置菜单,我们的原则尽量不大量修改,所以添加一个PreferenceScreen,新增一个类文件来管理DECt菜单选项。
android:targetPackage="comandroidphone"
android:targetClass="comandroidphoneDectSettings"
我们指明了包名,类名后,因这是个activity,所以我们需要到Phone目录下修改
AndroidManifestxml文件,指明启动的activity的类名
Java代码
<activity android:name="CdmaCallOptions"
android:label="@string/cdma_options">
<intent-filter>
<action android:name="androidintentactionMAIN" />
</intent-filter>
</activity>
<!-- dect activity -->
<activity android:name="DectSettings"
android:label="@string/dect_module_title">
<intent-filter>
<action android:name="androidintentactionMAIN" />
</intent-filter>
</activity>
<activity android:name="CdmaCallOptions"
android:label="@string/cdma_options">
<intent-filter>
<action android:name="androidintentactionMAIN" />
</intent-filter>
</activity>
<!-- dect activity -->
<activity android:name="DectSettings"
android:label="@string/dect_module_title">
<intent-filter>
<action android:name="androidintentactionMAIN" />
</intent-filter>
</activity>
3修改好后,我们必须在此activity里添加preference布局文件。
在此目录Phone\res\xml下,新增dect_settingsxml
Java代码
<xml version="10" encoding="utf-8">
<PreferenceScreen xmlns:android="http://schemasandroidcom/apk/res/android"
android:title="@string/dect_module_title">
<CheckBoxPreference
android:key="button_dect_module_key"
android:title="@string/dect_module_title"
android:defaultValue="true"
android:summaryOn="@string/dect_module_start"
android:summaryOff="@string/dect_module_stop"
/>
</PreferenceScreen>
<xml version="10" encoding="utf-8">
<PreferenceScreen xmlns:android="http://schemasandroidcom/apk/res/android"
android:title="@string/dect_module_title">
<CheckBoxPreference
android:key="button_dect_module_key"
android:title="@string/dect_module_title"
android:defaultValue="true"
android:summaryOn="@string/dect_module_start"
android:summaryOff="@string/dect_module_stop"
/>
</PreferenceScreen>
好了,总体布局已经完成
4在\packages\apps\Phone\src\com\android\phone目录下
新增DectSettingsjava文件
加载布局文件:
//dect xml
addPreferencesFromResource(Rxmldect_settings);
里面涉及到的MidPhoneServce服务,是自己添加的,主要通过此服务的AIDL接口跟硬件打交道。想了解系统服务,请网上查找资料。
源码如下:
Java代码
package comandroidphone;
import androidcontentDialogInterface;
import androidosAsyncResult;
import androidosBundle;
import androidosHandler;
import androidosMessage;
import androidpreferenceCheckBoxPreference;
import androidpreferencePreference;
import androidpreferencePreferenceActivity;
import androidpreferencePreferenceScreen;
import androidcontentSharedPreferences;
import androidcontentSharedPreferencesEditor;
import androidcontentpmActivityInfo;
import androidcontentpmPackageManager;
import androidcontentpmResolveInfo;
import androidosBundle;
import androidosHandler;
import androidutilLog;
import androidcontentContext;
import comandroidphoneR;
import androidosIMidPhoneService;
import androidosRemoteException;
import androidosServiceManager;
import androidproviderSettings;
public class DectSettings extends PreferenceActivity {
private static final String TAG = "DectSettings";
private static final String BUTTON_DECT_KEY = "button_dect_module_key";
private CheckBoxPreference mButtonDect;
public IMidPhoneService midphoneservice = null;
@Override
protected void onCreate(Bundle icicle) {
superonCreate(icicle);
//dect xml
addPreferencesFromResource(Rxmldect_settings);
mButtonDect = (CheckBoxPreference)findPreference(BUTTON_DECT_KEY);
mButtonDectsetPersistent(false);
if(mButtonDect != null) {
int dect_state = SettingsSystemgetInt(
getContentResolver(),SettingsSystemDECT_SAVED_STATE, 1);
mButtonDectsetChecked( dect_state!= 0);
SettingsSystemputInt(getContentResolver(),
SettingsSystemDECT_SAVED_STATE,dect_state);
Loge(TAG,"settings:------------->" + dect_state);
}
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
if (preference == mButtonDect ) {
int dect = mButtonDectisChecked() 1 : 0;
boolean state;
if(dect == 1)
state = true;
else
state = false;
try{
midphoneservice = IMidPhoneServiceStubasInterface(ServiceManagergetService("midphone"));
SettingsSystemputInt(getContentResolver(),
SettingsSystemDECT_SAVED_STATE,dect);
midphoneservicesetDectEnabled(state);
Loge(TAG,"settings:------------->" + dect);
} catch (RemoteException e) {
eprintStackTrace();
}
return true;
}
return false;
}
@Override
protected void onResume() {
superonResume();
if (mButtonDect != null) {
mButtonDectsetChecked(SettingsSystemgetInt(
getContentResolver(),
欢迎分享,转载请注明来源:品搜搜测评网