当前位置:首页 » 安卓系统 » androidsettings源码

androidsettings源码

发布时间: 2025-07-11 16:55:16

㈠ 如何更新android系统中到Setting.apk

第一步:
首先要在android源码根目录下执行
740 . build/envsetup.sh
741 brunch jordan
这一步其实是全编译android来,会在根目录下生成update-cm-7.2.0-RC1-jordan-UNOFFICIAL-signed.zip,这个ROM,用于更新系统。
在以后,其实可以直接
. build/envsetup.sh
来初始化编译环境。
进入android-cm7/packages/apps/Settings,执行命令mm:
结果如下:
make: Entering directory `/home/neo/defy/android-cm7'
Copying: out/target/common/obj/APPS/Settings_intermediates/emma_out/lib/classes-jarjar.jar
Install: out/target/proct/jordan/system/app/Settings.apk
Copying: out/target/common/obj/APPS/SettingsTests_intermediates/emma_out/lib/classes-jarjar.jar
Install: out/target/proct/jordan/data/app/SettingsTests.apk
make: Leaving directory `/home/neo/defy/android-cm7'
可见,在out/target/proct/jordan/system/app/目录下 生成了Settings.apk文件。

第二步:
在目录android-cm7/out/target/proct/jordan/system/app下执行
# adb remount
将文件系统重新挂载,获得文件系统到读写权限,再执行push,将Settings.apk加载到目标路径,覆盖原来到Settings,
# adb push Settings.apk /system/app
3122 KB/s (4576533 bytes in 1.431s)
手机上重新打开设置,就可以看见刚才修改到效果了。

㈡ 怎样修改安卓软件内部代码的packname名字,安卓软件是在商店下载的

Android
源码自带了很多应用程序,想改个包名方便修改?很简单,两步搞定,以packages/apps/Settings为例:

1、打开AndroidManifest.xml,把

<manifest xmlns:android="http://schemas.android.com/apk/res/android
"

android:sharedUserId="android.uid.system"
package="com.android.settings">

改成

<manifest xmlns:android="http://schemas.android.com/apk/res/android
"

android:sharedUserId="android.uid.system"
package="com.android.settings2">

2、打开package Explorer

找到src 下主包com.android.setting

右键refactor->rename改成com.android.setting2,四个选项全部勾选,等一会就OK了

在模拟器里运行会时,会让你选择有原生的还是更改后的

㈢ 怎样在源代码中修改android系统的屏幕默认

1、首先解决【设置】界面默认显示【开发者选项】的问题

查看源代码:packages/apps/Settings/src/com/android/settings/SettingsActivity.java

在updateTilesList(Listtarget)方法中,可以找到【开发者选项】相关的代码:

else if (id == R.id.development_settings) {Log.d(LOG_TAG, =================oyp K=+showDev);if (!showDev || um.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)) {removeTile = true;}}


其中showDev变量定义在该方法最开始处

final boolean showDev = mDevelopmentPreferences.getBoolean(DevelopmentSettings.PREF_SHOW,android.os.Build.TYPE.equals(eng));


因此要想特定客户直接显示【开发者选项】,则将showDev的值改变即可,代码如下:

//added by ouyang 2015-11-10 set DevelopmentSettings.PREF_SHOW=true if model is J5if (android.os.SystemProperties.isJ5Version()) {SharedPreferences.Editor editor=mDevelopmentPreferences.edit();editor.putBoolean(DevelopmentSettings.PREF_SHOW, true);editor.commit();Log.d(LOG_TAG, =================oyp set DevelopmentSettings.PREF_SHOW=true if model is J5 );}//added by ouyang 2015-11-10 endfinal boolean showDev = mDevelopmentPreferences.getBoolean(DevelopmentSettings.PREF_SHOW,android.os.Build.TYPE.equals(eng));


即在初始化showDev变量之前,将DevelopmentSettings.PREF_SHOW的值设置为true,那么showDev也会是true。这样【开发者选项】就会默认打开。那个判断是J5客户的方法在/frameworks/base/core/java/android/os/SystemProperties.java中定义

public static boolean isJ5Version(){return SystemProperties.get(ro.proct.model).contains(J5);}



因为这个添加的代码是在SecuritySettings的createPreferenceHierarchy()方法中,也就是说要进入到该Activity才生效。这样明显没达到目的。

因此要和设置【USB调试】一样,在一个接收开机广播的广播接收者中将Settings.Global.INSTALL_NON_MARKET_APPS设置为1。

4、找Settings里面定义的一个接收开机广播的广播接收者,在AndroidManifest.xml中找到一个,当然你也可以自己定义一个这样的广播接收者。

<!-- Restore Rotation Receiver --><receiver android:name="com.mediatek.settings.RestoreRotationReceiver"><intent-filter></action></action></intent-filter></receiver>


因此在packages/apps/Settings/src/com/mediatek/settings/RestoreRotationReceiver.java的onReceive(Context context, Intent intent)方法中加入以下代码:

//added by ouyang 2015-11-13if (android.os.SystemProperties.isJ5Version()) {// 开机启动时,默认设置 [未知来源] 勾选Settings.Global.putInt(context.getContentResolver(), Settings.Global.INSTALL_NON_MARKET_APPS,1);// 开机启动时,默认设置 [USB调试] 勾选Settings.Global.putInt(context.getContentResolver(),Settings.Global.ADB_ENABLED, 1);}//added by ouyang 2015-11-13 end

而一开始添加的代码可以注释掉了。通过git diff可以看出来

diff --git a/packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java b/packages/apps/Settings/src/com/android/settings/Develindex 0a987df..503270a 100755--- a/packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java+++ b/packages/apps/Settings/src/com/android/settings/DevelopmentSettings.java@@ -508,15 +508,9 @@ public class DevelopmentSettings extends Context context = getActivity();final ContentResolver cr = context.getContentResolver();mHaveDebugSettings = false;-/// M: CR ALPS00244115. Lock and unlock screen, the USB debugging is unchecked.boolean isChecked = (mAdbDialog != null && mAdbDialog.isShowing()) ? true :(Settings.Global.getInt(cr, Settings.Global.ADB_ENABLED, 0) != 0);- //added by ouyang 2015-11-10 set mEnableAdb=true if model is J5- if (android.os.SystemProperties.isJ5Version()) {- isChecked=true;- }- //added by ouyang 2015-11-10 enpdateSwitchPreference(mEnableAdb, isChecked);/// M: update usb preference againmExt.customUSBPreference(mEnableAdb);
diff --git a/packages/apps/Settings/src/com/android/settings/SecuritySettings.java b/packages/apps/Settings/src/com/android/settings/Securityindex 4de173a..392e6ee 100755--- a/packages/apps/Settings/src/com/android/settings/SecuritySettings.java+++ b/packages/apps/Settings/src/com/android/settings/SecuritySettings.java@@ -402,14 +402,7 @@ public class SecuritySettings extends .findPreference(KEY_DEVICE_ADMIN_CATEGORY);mToggleAppInstallation = (SwitchPreference) findPreference(KEY_TOGGLE_INSTALL_APPLICATIONS);-- //added by ouyang 2015-11-10 setChecked(true) if the model is J5- if (android.os.SystemProperties.isJ5Version()) {- setNonMarketAppsAllowed(true);- }mToggleAppInstallation.setChecked(isNonMarketAppsAllowed());- //added by ouyang 2015-11-10 end-// Side loading of apps.// Disable for restricted profiles. For others, check if policy disallows it.mToggleAppInstallation.setEnabled(!um.getUserInfo(UserHandle.myUserId()).isRestricted());


这样改为后,编译,刷机后,插上USB数据线就可以开始进行adb调试了,而且可以直接安装未知来源的apk了。

热点内容
源码抓捕 发布:2025-07-12 13:47:34 浏览:872
安卓哪里有李小龙 发布:2025-07-12 13:31:49 浏览:438
苹果保存账号密码在哪里找 发布:2025-07-12 13:31:07 浏览:98
东北大学c语言考试题 发布:2025-07-12 13:26:40 浏览:756
sha256在线加密 发布:2025-07-12 13:19:06 浏览:227
vbnet创建数据库连接 发布:2025-07-12 13:15:34 浏览:232
为什么社保卡在社康还要密码 发布:2025-07-12 13:11:42 浏览:811
取随机数php 发布:2025-07-12 12:58:16 浏览:841
如何配置组合音响 发布:2025-07-12 12:53:54 浏览:94
c语言幂计算 发布:2025-07-12 12:52:36 浏览:567