當前位置:首頁 » 安卓系統 » adbandroid源碼

adbandroid源碼

發布時間: 2025-03-17 14:21:54

❶ 如何移植android 源代碼到自己的手機上

成功將android2.1移植到手機上,需經過以下幾個步驟:
一,准備好android2.1源碼編譯環境以及手機USB調試環境。
二,將手機上硬體驅動程序以及相關的配置文件通過ADB命令保存好。
三,針對不同的手機機型,製作相應的vendor配置文件。
四,編譯源碼。
五,通過手機提供的bootloader刷機或者直接以recovery的方式更新ROM。
在以上五個步驟中,其中最難處理的便是第2個步驟,這個步驟需要熟悉每個手機機型的硬體參數,並且能夠在手機上找到相關的驅動程序以及了解他們如何配置。而CyanogenMod團隊公布的源碼當中,己經將相關的工作做好了,

❷ 怎樣在源代碼中修改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了。

❸ 怎樣查看 Android APP源代碼

將apk文件拷貝至sdcard上。
命令順序如下:

進入Android sdk文件夾/tools目錄下
輸入adb shell
輸入su
輸入cd data
輸入cd app
這時就可以看到你安裝的所有的apk文件。輸入cp 空格 對應的apk 空格 /sdcard/
這樣就將apk文件拷貝出來了。
將apk文件後綴直接變成rar格式,可以看到熟悉的目錄結構了,

其中xml文件打開後都是二進制的,無法查看。
這時就用到了一個android4me的AXMLPrinter2工具。(請自行網路搜索)
輸入以下命令,將xml文件解析出來
java -jar AXMLPrinter2.jar showtimes_list.xml
此命令是在命令行中查看此showtimes_list.xml
將showtimes_list.xml生成xml文件,則輸入以下命令:
java -jar AXMLPrinter2.jar showtimes_list.xml > h.xml
目前進行到這一步,只能看到xml文件的內容,其工程中的java源文件還是看不到,看目錄結構下有一個classes.dex文件,我們需要將dex文件變為jar文件。
這里用到了另一個工具dex2jar。(自行搜索下載)
在Windows下解壓之後的目錄如下圖所示:

在命令行中,進入到此目錄下:
在Windows下,輸入以下命令:
dex2jar.bat c:classes.dex
運行完之後,在C盤會多一個classes.dex.dex2jar.jar文件,此文件就是我們需要的jar文件。
利用jd-gui,將jar文件反向工程為java代碼。(請自行搜索下載)
它分為Windows、Linux、和max三個版本,這里我下載的是Windows版本的。
解壓之後,雙擊運行exe文件,選擇classes.dex.dex2jar.jar文件,相應的jar文件中的Java文件就被反向工程顯示出來了!

❹ 利用adb命令打開usb調試

刷機不需要打開USB調試!

熱點內容
微信存儲到sd卡 發布:2025-03-18 01:34:29 瀏覽:968
eclipse的自動編譯 發布:2025-03-18 01:34:29 瀏覽:367
可以上傳視頻網站 發布:2025-03-18 01:29:17 瀏覽:932
mysql密碼忘記了怎麼 發布:2025-03-18 01:23:00 瀏覽:858
java與oracle 發布:2025-03-18 01:18:05 瀏覽:705
怎麼給win7電腦文件加密 發布:2025-03-18 01:10:41 瀏覽:989
python生成隨機數 發布:2025-03-18 01:10:40 瀏覽:95
手機存儲卡怎麼設置 發布:2025-03-18 01:04:26 瀏覽:213
背演算法好處 發布:2025-03-18 01:02:18 瀏覽:57
win7添加刪除在哪個文件夾 發布:2025-03-18 01:02:13 瀏覽:705