当前位置:首页 » 安卓系统 » 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调试!

热点内容
android贪吃蛇 发布:2025-03-17 23:45:57 浏览:67
zbar源码 发布:2025-03-17 23:42:18 浏览:769
水星wifi改密码怎么改 发布:2025-03-17 23:41:39 浏览:789
编程班表 发布:2025-03-17 23:41:34 浏览:880
网上邻居访问权限 发布:2025-03-17 23:41:31 浏览:389
国行安卓11如何使用谷歌 发布:2025-03-17 23:40:52 浏览:145
ftp数据传输和控制端口 发布:2025-03-17 23:40:52 浏览:873
首算法 发布:2025-03-17 23:40:02 浏览:449
php应用程序池 发布:2025-03-17 23:36:13 浏览:409
linux加默认路由 发布:2025-03-17 23:31:19 浏览:432