- 博客(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 默认不弹出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设置飞行模式
或者有系统权限的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禁用省电模式
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
原创 展锐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 系统增加一个开机运行的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增加一个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
原创 系统服务发送广播,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
google tts服务
2025-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2