导航:首页 > 源码编译 > 刷系统用源码

刷系统用源码

发布时间:2024-07-20 09:15:20

Ⅰ 怎样在源代码中修改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了。

Ⅱ Spring源码9. refreshContext()刷新应用上下文

上一篇 prepareContext()准备应用上下文 中分析了spring容器的准备, 共计执行了如下8步:

准备刷新, 执行了两步:

清空CachingMetadataReaderFactory中的缓存

设置刷新开始事件, 设置closed为false, active为true, 标记容器处于active状态

AbstractApplicationContext中定义了模板方法, refreshBeanFactory和getBeanFactory调用的是GenericApplicationContext中实现的方法

更新this.refreshed字段为true, 表示已经更新了, 然后beanFactory设置serializationId, 最后返回beanFactory

beanFactory是GenericApplicationContext中DefaultListableBeanFactory类型的成员变量, 设置beanFactory, 一共执行了

后续处理各个beanFactory, 当前applicationContext是的实例, postProcessBeanFactory执行了三步

进行了两个操作, 首先添加了一个的Aware Bean处理器, ServletContextAware的子类Bean在实例化过程中, 会被注入servletContext和servletConfig对象, 然后beanFactory中注册了request和session两个scopes, 注册了几个Autowired依赖类

注册了request, session两个scope, 然后注册ServletRequest, ServletResponse, HttpSession, WebRequest

BeanFactoryPostProcessor是一个接口, 处理beanFactory中所有的bean, 在所有的beanDefinition加载完成之后, BeanFactoryPostProcessor可以对beanDefinition进行属性的修改, 之后再进行bean实例化

是BeanFactoryPostProcessor的子接口, 定义了方法, 会在postProcessBeanFactory方法执行之前, 获取bean定义, 并注册到spring容器中

如果beanFactory是BeanDefinitionRegistry的子类, 按优先级处理类型的后置处理器, 最后处理传入的其他类型后置处理器, 处理流程如下:

如果beanFactory不是BeanDefinitionRegistry的子类, 那么直接遍历传入的传入的beanFactoryPostProcessors, 调用元素的postProcessBeanFactory方法

最后处理beanFactory中注册的其他类型的BeanFactoryPostProcessor, 获取bean名称, 维护到postProcessorNames列表中, 之后的处理步骤如下:

处理了@Configuration注解, 扫描项目中的BeanDefinition, 这篇文章 详细剖析了的源码

BeanPostProcessor是一个接口, Bean后置处理器, 在bean实例化, 之前执行方法, 在bean实例化之后执行方法, 实现了对bean实例的增强

beanFactory中获取BeanPostProcessor类型的bean名称, 维护到postProcessorNames数组中, 将BeanPostProcessor列表分为四类:

beanFactory先添加一个BeanPostProcessorChecker类型的BeanPostProcessor, 然后在将各类PostProcessors列表排序, 分别添加到beanFactory的beanPostProcessor列表中, 最后再添加一个ApplicationListenerDetector

先判断容器beanFactory中是否包含messageSource bean定义, 存在的话, 直接获取bean, 如果不存在的话, 那么手工注册一个messageSource单例bean, 然后赋值给this.messageSource

先判断容器beanFactory中是否有applicationEventMulticaster bean定义, 存在的话, 获取bean实例, 不存在的话, 实例化一个, 手工注册一个单例bean, 然后赋值给this.applicationEventMulticaster

AbstractApplicationContext没有实现该方法, 用于通知子类刷新容器

调用父类GenericWebApplicationContext#onRefresh方法, 然后创建webServer, 之后调用父类GenericWebApplicationContext#initPropertySources方法, 将servletContext维护到environment的servletContextInitParams属性中

初始化主题, 可以让页面显示不同的样式

首先将硬编码的ApplicationListener先添加this.applicationEventMulticaster.defaultRetriever.applicationListeners中, 然后将注入的listener bean维护到this.applicationEventMulticaster.defaultRetriever.applicationListenerBeans, 最后处理earlyEvent

beanFactory.preInstantiateSingletons() 源码剖析

什么都没有做

打印@Condition注解评估日志

Ⅲ 灏忕背2 AOSP婧愮爜链鏂扮紪璇4.3铡熺敓鐗埚埛链哄寘

链瑀om锘轰簬链鏂瘾osp婧愮爜缂栬疟钥屾垚浠ュ强锘轰簬绉嫔ぇ鍐呮牳缂栬疟銆傛劅璋浠栦滑...娣诲姞涓浜涗汉镐у寲璁剧疆
鍒朵綔鐩稿叧 ROM钖岖О  AOSP婧愮爜链鏂扮紪璇4.3铡熺敓鐗堛愭坊锷犳潵鐢靛綊灞炲湴锏惧垎姣旂数閲忕姸镐佹爮浼桦寲銆 ROM鐗堟湰  4.3 锘轰簬鐗堟湰  AOSP4.3婧愮爜 阃傞厤链哄瀷  M2 ROM浣滆  zzllzz 锲㈤槦缂栧彿闄铡嗘厧  C4 鍙戝竷镞堕棿  2012-08-17
ROM浠嬬粛 锘轰簬aosp4.3链鏂版簮镰佺紪璇戯纴瀹屽叏aosp绾鍑椋庢牸 娣诲姞𨱒ョ数褰掑睘鍦帮纴镟存柟渚垮疄鐢 链绮剧亩鐗堬纴绯荤粺镟寸ǔ瀹 锏惧垎姣旂数閲 wifi淇″彿鍜岀绣缁滀俊鍙风编鍖 榛樿ゅ叧闂镊锷ㄦ棆杞 榛樿ゅ叧闂璆PS 榛樿ゆ墦寮链鐭apk搴旂敤 榛樿ゆ墦寮USB璋冭瘯 more
鍒锋満鏂规硶锛1.濡傛灉娌℃湁Recovery锛岃峰厛鍒风3鏂筊ecovery2.鍏虫満锛屾墸鐢垫睁锛屾寜浣忛煶閲忓悜涓嬮敭+寮链洪敭锛岃繘鍏RECOUERY3.阃夋嫨绗锲涢”wipe钬杅ormat 杩涜屽弻wipe 绗鐑傞棴涓椤 绗浜岄”鑺︽暚4.阃夋嫨install zip from sdcard5.铹跺悗阃夋嫨choose zip from sdcard6.阃夋嫨鍒锋満鍖咃纴纭璁ゅ埛链7.鍒锋満瀹屾垚钖庯纴绯荤粺閲嶅惎锛岀涓娆″紑链烘椂闂存瘆杈冮暱锛    灏忕背

Ⅳ 刷脸支付系统源码如何安装

1、首先,在机器上下载刷脸支付系统源码。
2、其次,点击注册,登录企业设备。
3、最后,即可安装刷脸支付系统源码。刷脸支付系统源码是编写的原始程序的代码。

Ⅳ 华为官网提供的手机系统源代码可以刷机使用吗

不可以 手机源代码和电脑的一样,就是直接控制硬件的代码 楼主可以去论坛找到你的机型去里面找ROM刷就可以了

阅读全文

与刷系统用源码相关的资料

热点内容
java视屏 浏览:932
电脑中如何给程序加密 浏览:238
java排序容器 浏览:942
职称证书在哪个app下载 浏览:362
四九算法算男女 浏览:659
javawindows8 浏览:496
2021世界程序员节 浏览:484
php翼支付 浏览:882
盈通服务器ip地址 浏览:789
3des算法的c语言实现 浏览:873
网上怎样购买服务器地址 浏览:813
新氧app都在哪个城市 浏览:731
十二大加密货币图片 浏览:315
数据库日志自动压缩 浏览:929
手机表格文档用哪个app 浏览:77
找人开发app的公司怎么样 浏览:652
android蓝牙发送数据 浏览:428
范文澜中国通史pdf 浏览:755
php常用的设计模式 浏览:889
安卓手机怎么一个一个的截图 浏览:980