自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 Android 移除APP运行时权限

frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java的实现,移除运行时权限。getSystemService(PermissionManager.class)获取该服务实现移除运行时权限功能。的revokeRuntimePermission方法,移除APP运行时权限。PermissionManager是系统隐藏服务,系统APP可通过。

2025-11-26 16:39:48 241

原创 Android13 user版本默认开启ADB

2、查找到 ifeq ($(user_variant),userdebug)1、查找到ifeq ($(user_variant),user),注释掉。打开/build/make/core/main.mk。

2025-11-21 10:27:07 214

原创 Android设置APP不受流量限制

APP需要SYSTEM用户权限。

2025-10-10 09:42:39 108

原创 Android 默认不弹出USB设备访问权限提示DIALOG

当系统UID的APP或者mDisablePermissionDialogs为true,默认具有权限,看这个mDisablePermissionDialogs。查找getPermissionsForUser(userId).hasPermission(device, packageName, pid, uid);把config_disableUsbPermissionDialogs设为 true即可,注意注释,如果设为true,会导致google的CTS测试失败。

2025-10-09 09:39:07 522

原创 Android获取内核版本号

Android内核版本号不能直接获取,只能通过截取字符串获取。

2025-10-09 09:38:23 131

原创 Android获取手机主、副卡IMEI

【代码】Android获取手机主、副卡IMEI。

2025-07-24 11:48:28 322

原创 Android获取主、副卡槽的ICCID和imis号

【代码】Android获取卡槽0,1的ICCID和imis号。

2025-07-24 10:20:24 293

原创 Android设置飞行模式

或者有系统权限的APP,设置Settings.Global.AIRPLANE_MODE_ON的值,并发送系统广播。飞行模式通过Settings.Global.AIRPLANE_MODE_ON设置,设置成功后,发送广播通知变化。

2025-07-23 10:23:43 237

原创 Android13重置锁屏(2)

代码从保存的锁屏凭证获取值,并根据当前的锁屏方式,创建还原保存的锁屏作为验证,同时创建一个新的以pwd为密码的锁屏凭证,通过lockPatternUtils.setLockCredential设置。锁屏凭证包括图案、PIN、密码,系统开机默认无锁屏,重置锁屏的想法是在每次设置新锁屏凭证成功后,保存新锁屏凭证到文件,当再次设置时,用保存的锁屏凭证作为验证。将凭证的byte数组转成HEX码,保存到Settings,通过系统设置修改的锁屏凭证也会经过这里保存。

2025-07-23 09:52:57 397

原创 Android13重置锁屏(1)

锁屏凭证存在/data/system/locksettings.db,而且是经过加密,直接读取原始明文需要反向破解,直接清除locksettings.db又担心引起系统异常,还是得用别的办法,继续回到setLockCredential。经过一层层跟踪,查找到/frameworks/base/services/core/java/com/android/server/locksettings/LockSettingsStorage.java。

2025-07-22 18:00:26 507

原创 Android 禁用beam传输

2、打开/packages/apps/Settings/src/com/android/settings/nfc/AndroidBeamEnabler.java。1、打开/packages/apps/Nfc/src/com/android/nfc/beam/BeamManager.java。找到startBeamReceive、startBeamSend方法。return false可以根据具体情况决定是否允许beam。

2025-07-07 09:54:43 338

原创 激活应用辅助服务

2、在列出的信息里面查找到 android.accessibilityservice.AccessibilityService,比如。1、安装辅助服务的应用,adb shell进入系统,使用 dumpsys package 查看应用信息。yourapppackagename是应用包名,yourclassname 是申请辅助服务对应的类名。3、adb 激活辅助服务。代码需要system权限。4、代码激活辅助服务。

2025-07-02 09:32:21 509

原创 激活一个设备管理应用

yourapppackagename是激活设备管理应用的包名,yourappadminclassname是对应的类名。2、在列出的信息里面查找到android.app.action.DEVICE_ADMIN_ENABLED,比如。1、安装这个应用,adb shell进入系统,使用 dumpsys package 查看应用信息。3、adb 激活设备管理应用。4、代码激活设备管理应用。

2025-07-01 14:18:34 550

原创 Android bindservice绑定服务,bindServiceAsUser补充

【代码】Android bindservice绑定服务,bindServiceAsUser补充。

2025-05-30 15:13:11 816

原创 Android bindservice绑定服务,并同步返回service对象的两个方法

也可以实现方法1的功能,只不过把接收对象换成了Handler ,bindServiceAsUser是系统隐藏方法,需通过反射方法使用,至于bindServiceAsUser是否早于android7.0之前就有,无法确认。关键点,bindservice执行的时候接收的Handler是 mMainThread.getHandler(),这个是APP的主线程,也就是无论外部怎么折腾,这个是在主线程接收的。

2025-05-29 15:42:04 662

原创 Android开机向导定制(3)强制要求用户设置锁屏密码,并在开机向导配置

1、打开/vendor/sprd/platform/packages/apps/SetupWizard/src/org/lineageos/setupwizard/ScreenLockActivity.java,找到getLayoutResId方法。2、打开/packages/apps/Settings/src/com/android/settings/password/SetupChooseLockGeneric.java,,并增加相应代码,根据客制化属性,决定是否。

2025-05-28 09:02:34 650

原创 Android开机向导定制(2)开机向导配置

result wizard:action="locale"/>指向下一个配置向导,依次类推,一直到<result wizard:action="exit" />,标志配置结束,进入系统。如果想省去卡机向导的麻烦,直接将wizard:firstAction="welcome",改成wizard:firstAction="exit"看到的是启动的WelcomeActivity。

2025-05-27 08:42:48 608

原创 Android开机向导定制(1)开机向导加载流程

代码看,开机向导完成后,SetupWizardActivity每次开机重启后并不是不启动,而是判断已经设置完成后,就直接finish了,而开机设置是通过intent传递参数启动后面的设置。SetupWizard开机引导是一个系统APP,第一次开机或者恢复出厂设置后,优先于其他APP启动,完成系统设置。真正后面要执行的是raw资源下的lineage_wizard_script,这是一个xml文件,后面再介绍这个。在开机引导模式下,状态栏、无线数据是被禁止使用的。

2025-05-26 08:40:02 1233

原创 android13 禁止用户修改指定APP运行时权限

【代码】android13 禁止用户修改指定APP权限。

2025-05-23 08:49:44 499

原创 Android13禁用省电模式

2、找到com.android.settings.fuelgauge.batterysaver.BatterySaverButtonPreferenceController对应的文件。1、打开/packages/apps/Settings/res/xml/battery_saver_settings.xml,找到。修改SuperBatteryTile.java的方法,修改BatterySaverTile.java,在下拉状态栏也禁用省电状态。

2025-05-08 08:49:59 971

原创 Android am命令参考

方法onCommand的case语句包含相应am 命令参数,具体参数作用去搜索。

2025-05-07 08:45:22 465

原创 展锐Android13禁止用户使用超级省电

并修改changeEnabled方法的代码,根据设定系统属性,判断是否置灰设置里面的超级省电开关。2、打开/vendor/sprd/platform/frameworks/base/packages/SystemUI/src-unisoc/com/unisoc/systemui/qs/tiles/SuperBatteryTile.java,禁止从下拉状态栏修改。1、打开/packages/apps/Settings/res/xml/power_usage_summary.xml,找到。

2025-05-06 11:20:42 740

原创 Android pm命令参考

通过ad执行pm命令,可以做很多事,拿下系统代码。

2025-04-30 11:53:21 677

原创 Android 系统增加一个开机运行的sh代码

on property:sys.boot_completed=1 是在接到系统启动完成后,开机服务。文件定义一个youinit 的service,这个service执行 youinit.sh。2、编辑shell文件,并在编译时,将这个shell文件拷贝到/system/bin目录。service 的user,看脚本执行需要root权限,还是system权限。

2025-04-29 09:20:06 660

原创 Android13增加第三方类实现加入到系统

Android13增加第三方类实现加入到系统

2025-04-28 08:47:53 554

原创 Android13增加一个systemservice,并允许APP访问

2、在//frameworks/base/services/core/java/com/android/server创建包名devicemgr,并创建DeviceMgr,继承IDeviceMgr。1、在/frameworks/base/core/java/android/os下创建一个AIDL文件,比如IDeviceMgr.aidl。这是APP调用getSystemService对应的服务名称。编译系统,生成AIDL对应的JAVA文件。

2025-04-27 08:57:31 711

原创 展锐Android13电池问题导致系统的崩溃,(3)低电量开机电池电压的判断

分析sprd_boot,在get_mode_from_bat_low之前,做了系统USB驱动加载,fastboot模式检查,还有for循环里面的那些检查,这些加载、检查的运行拉低了电压,那就在这些加载、启动之前,先检查电压,修改sprd_boot函数。模仿get_mode_from_bat_low,增加一个get_bat_low函数,在进入sprd_boot后,增加相应的代码判断,电压检查使用新的宏定义,get_mode_from_bat_low还是使用原有定义。

2025-04-25 08:33:17 428

原创 展锐Android13电池问题导致系统的崩溃,(2)电池电压计算和电池曲线

函数包含充电状态、非充电状态电池电量是否过低的检查,3400、3500是原有的电压宏定义,计量单位mV(毫伏),这个定义的标准需要参考当前电池的电池曲线,根据配置的dts文件查找,右侧是电池电量百分比,开机后显示的电池电量和电池电压的对应关系就在这。好吧,my god,差了好多,这是只要有电就开机。手机上看到的电池电量也是这么计算,电池老化后,电压波动也会非常大,显示的结果就是电池电量掉的非常快。本以为到这就结束了,又碰到一种电池,低压状态下电池输出功率不够,电压变化非常大,还要继续改。

2025-04-24 08:45:14 635

原创 展锐Android13电池问题导致系统的崩溃,(1)电池电量检测在LK中的加载顺序

判断的三个函数is_bat_low_flag()、sprdbat_get_battery_temp_status()、charger_connected()。也就是说设备开机检查的时候,是检查的电池的电压,而不是电池电量,在这个时候,电池电量是检查不到的。sprdbat_get_battery_temp_status()函数判断电池温度是否正常。get_mode_from_bat_low函数用来检查启动时的电池电量,转到这个函数。is_bat_low_flag()函数判断是否处于低电压模式。

2025-04-23 08:51:58 921

原创 Android系统检测网络连接并增加系统提示

3、在/packages/apps/Settings/src/com/android/settings/下创建广播接收PublicNetworkWarningReceiver.java。2、打开/packages/apps/Settings/AndroidManifest.xml,在xml的最后增加一个广播接收PublicNetworkWarningReceiver。/frameworks/base/services/core/java/com/android/server/相应的系统服务目录。

2025-04-22 09:32:19 374

原创 展锐Android13状态栏默认显示电池电量百分比

系统重新编译,刷机后开机,系统读取数据库,自动配置为状态栏默认显示电池电量百分比。展锐Android13电池状态默认不显示电池电量百分比,打开。

2025-04-21 08:19:35 568

原创 Android13 APP安装时默认允许修改系统设置权限,并禁止用户修改

mPackageName对应置灰应用的包名。禁止用户在设置内手动关闭,打开。

2025-04-18 08:45:41 805

原创 Android13禁用外置USB鼠标、键盘

打开//frameworks/native/services/inputflinger/reader/EventHub.cpp,找到openDeviceLocked(const std::string& devicePath)函数。通过设置系统属性persist.sys.peripheral的值,控制是否禁用外置USB鼠标、键盘。

2025-04-17 08:36:17 521

原创 Android13下拉状态栏修改

如果需要修改其他项目,可找相应的类实现,比如WIFI、手电筒、飞行模式等等,这里举例蓝牙,打开。BluetoothTile继承QSTileImpl,其他类似,可以照葫芦画瓢,修改其他的。有客户定制要求在系统禁用相应功能后,需要置灰下拉状态栏相应的项目,同时设为不可用。比如蓝牙,没有定制,系统默认只有两种状态:开启、关闭,需要增加第三种。这三个方法是防点击、和长按,最后还需修改蓝牙项状态。这个是下拉状态栏项的入口,相应的实现在这里初始化。

2025-04-16 09:05:14 592

原创 Android禁止状态栏下拉

【代码】Android禁止状态栏下拉。

2025-04-15 08:28:56 591

原创 Android13隐藏launcher APP图标的两个方法

Android13隐藏launcher APP图标的两个方法

2025-04-14 10:06:46 1397

原创 系统服务发送广播,non-protected broadcast异常处理

【代码】系统服务non-protected broadcast异常处理。

2025-04-14 08:54:29 236

原创 Android13增加系统只读属性

2、打开/build/make/core/sysprop.mk,在gen_from_buildinfo_sh增加FIRMWARE_CUSTOM_VERSION。3、打开/build/core/version_defaults.mk ,在mk文件最后增加。4、如果需要显示,找到一个显示位置,比如“设置”---“关于”---“版本号”,加上一行。增加一个ro.build.firmware.custom.version,只读属性,注意。1、打开/build/tools/buildinfo.sh。

2025-04-12 09:38:46 613

原创 Android13 禁用、启用HOME键、返回键

Android13 禁用、启用HOME键、返回键切换

2025-04-12 09:35:57 526

原创 Android13给指定APP默认添加运行时权限

Android13给指定APP默认添加运行时权限

2025-04-11 08:17:53 724 2

google tts服务

google tts服务 • Added support for French (Canadian), Javanese and Sundanese. • More voices to choose from for English (Australian), English (United Kingdom) and French (France). • All voices for a language are now downloaded together, saving storage space on your device. • Performance improvements for 64-bit devices. • Various other improvements to our voices.

2025-04-21

展锐Android13默认APN配置文件

展锐Android13默认APN配置文件

2025-04-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除