當前位置:首頁 » 安卓系統 » 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了。

熱點內容
取隨機數php 發布:2025-07-12 12:58:16 瀏覽:840
如何配置組合音響 發布:2025-07-12 12:53:54 瀏覽:93
c語言冪計算 發布:2025-07-12 12:52:36 瀏覽:566
兔費WLAN密碼多少 發布:2025-07-12 12:50:59 瀏覽:861
阿里雲分布式存儲 發布:2025-07-12 12:45:04 瀏覽:535
sql日誌壓縮 發布:2025-07-12 12:39:53 瀏覽:343
紅點角標演算法 發布:2025-07-12 12:11:16 瀏覽:844
開心消消樂伺服器繁忙什麼情況 發布:2025-07-12 12:11:14 瀏覽:239
資料庫的封鎖協議 發布:2025-07-12 12:10:35 瀏覽:725
如何配置一台長久耐用的電腦 發布:2025-07-12 11:43:03 瀏覽:602