Android系统
文章平均质量分 95
其实有蛋先
将生命丰富一些
展开
-
APK签名提示Exception in thread “main“ java.lang.ExceptionInInitializerError错误
在ASOP源码中对apk使用以下命令进行签名时java -Xms512m -jar signapk.jar -w platform.x509.pem platform.pk8 to_be_signed.apk demo_Signed.apk会出现报错提示:Exception in thread “main” java.lang.ExceptionInInitializerErrorat org.conscrypt.OpenSSLBIOInputStream.(OpenSSLBIOInputStre原创 2020-10-31 19:35:07 · 3883 阅读 · 8 评论 -
ASOP源码中单独编译preloader/lk/kernel/framework模块
ASOP单独编译重要模块单独编译preloader单独编译LK单独编译kernel打包system.img打包boot.img单独编译preloader主要步骤cd bootable/bootloader/preloader./build.sh 2>&1 TARGET_PRODUCT=${PROJECT} | tee preloader_build.logPROJECT由自己指定,比如我指定了8p1bsp,之后会在源码目录下的out/target/product/8原创 2020-10-31 18:38:31 · 2263 阅读 · 6 评论 -
Android系统定制开机logo和开机动画
定制开机logo和开机动画开机logo开机动画bootanimation.zip生成zip文件添加新的开机动画开机logoMTK ASOP中lk阶段的logo是开机后的第一个界面,也被称为U-boot logo,其与Battery logo在编译后会统一生成logo.bin。查看ASOP源码目录下的配置文件:vendor\mediatek\proprietary\bootable\bootloader\lk\project\8pbsp.mk找到选项:BOOT_LOGO := wuxga原创 2020-10-31 18:01:13 · 3280 阅读 · 0 评论 -
Android 9 解决自定义按键无法唤醒屏幕问题
当我们给Android设备外接键盘时,某些自定义按键点击时可能无法唤醒屏幕,但又需要做到可以唤醒屏幕,要唤醒需使用到电源管理中PowerManager,可以自定义一个PowerManager类对象,在执行自定义按键按下操作处,添加相关处理:PowerManger mPowerManager = new PowerManager();mPowerManager.userActivity(SystemClock.uptimeMillis(), false);源码中关于PowerManager类的成员方法原创 2020-10-31 11:39:30 · 711 阅读 · 0 评论 -
Android源码中常见的修饰符
在查阅Android源码时,经常能看到方法或类前有修饰符,满足下好奇心,查阅总结了几个常见修饰符的作用@SystemApi 是 @PrivateApi 的别名Android源码中,有两种类型的API无法通过标准的SDK进行访问位于com.android.internal包中的类/方法 被 @hide 修饰的使用 @hide 修饰的方法/类/作用域,我们仍然何以通过java反射机制进行访问。使用 @SystemApi 修饰的方法/类/作用域,无法通过java 反射机制进行访问(原创 2020-10-31 11:20:16 · 322 阅读 · 1 评论 -
Android系统预置的apk使用系统属性
在AndroidManifest.xml中,在manifest加入android:sharedUserId="android.uid.system "在Android.mk中,將LOCAL_CERTIFICATE := XXX修改成LOCAL_CERTIFICATE :=platform原创 2020-10-31 11:07:01 · 255 阅读 · 0 评论 -
Android framework层 读取文件 执行shell命令
当我们需要在应用层读取文件时,需使用FileReader类。一般我们读取的文件随编译打包到system.img镜像中的public boolean isList(String packageName) { FileReader fr; String path = "/data/system/list.txt"; try { fr = new F.原创 2020-10-31 11:03:55 · 767 阅读 · 0 评论 -
Android系统adb shell端禁用USB功能
使用ADB工具调试时,可使用adb shell命令来禁用USB的相关功能如果只想关闭USB调试功能,可以:setprop persist.sys.usb.config mtp如果只想关闭USB文件传输功能,可以:setprop persist.sys.usb.config adb禁用USBsetprop persist.sys.usb.config none...原创 2020-10-31 10:54:00 · 3502 阅读 · 2 评论 -
Android 9 系统读取内存和存储容量
Android系统设置中, 关于手机 这个选项中会显示有运行内存和手机存储的容量信息,既然是直接显示给用户看的,直接相关的源码肯定在framework层,搜索查找后发现主要涉及三个framework层的源文件:src/com/android/settings/applications/ProcessStatsSummary.javasrc/com/android/settings/applications/ProcStatsData.javaframeworks/base/core/jni/andr原创 2020-10-31 10:50:22 · 1380 阅读 · 1 评论 -
Android系统编译小总结
Android系统编译简介搭建编译环境系统编译命令常见小知识点Android编译版本Android.mk文件编译系统中的变量和宏native layer编译碰到的问题安装lib32bz2-1.0出问题add-apt-repository命令不存在Jack server installation not foundsubcommand failed问题内核目录下存在.config文件导致编译错误输出目录中的重要目录编译模块系统属性相关目标和依赖文件的定义打包新添加的模块至system.img简介Andro原创 2020-10-30 23:35:06 · 742 阅读 · 0 评论 -
Android源码目录下查看系统编译版本
查看源码根目录下default.prop文件,查看下列属性的值ro.securero.debuggablero.secure=1 And ro.debuggable=0 为User模式ro.secure=0 And ro.debuggable=1 为Eng模式原创 2020-10-30 21:36:37 · 351 阅读 · 0 评论 -
ADB工具使用
ADB工具ADB简介环境配置常用命令1. 登录设备2. 取得root权限3. 查看连接的设备4. 从PC端发送文件到设备端5. 从设备端拉取文件到PC端6. 查看第三方应用7. 获取应用版本号8. 列出系统应用9. 查看cpu的架构信息和GPU信息10. 查看设备的操作系统11. 查看内存信息12. getprop命令13. 查看日志14. 查看内核版本15. adb shell中settings命令16. 抓取kernel log17. 进入fastboot模式18 安装卸载应用19. dumpsys命令原创 2020-10-29 23:16:05 · 2711 阅读 · 8 评论 -
Android系统启动自动开启mtklog
某些场景下需要开启自动开启mtklog,以便调试lk阶段出现的问题mtklog配置文件默认路径(厂商提供的sdk源码):device/mediatek/common/mtkloguser版系统对应的配置文件为 mtklog-config-basic-user.prop,修改相应配置com.mediatek.log.mobile.enabled = truecom.mediatek.log.modem.enabled = truecom.mediatek.log.net.enabled =原创 2020-10-29 21:27:33 · 648 阅读 · 2 评论 -
Android 9 解决系统显示设置最大导航栏按键显示错位问题
在平板设备中,Android 9 系统把显示设置最大,软键盘和主界面应用图标会跳到屏幕左侧;把显示设置最小,软键盘只显示返回键和Home键且显示在屏幕左下角。修改NavigationBarView.java文件中的updateRotatedViews方法的实现,源文件所在路径为:vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/找到updateRotatedVi原创 2020-10-29 21:21:06 · 1027 阅读 · 0 评论 -
Android 9 系统修改内设WLAN热点名称
原生的Android 9 系统中,WLAN热点名称是系统默认设定的,用户无法修改,那么在系统中修改的话,需要在framework层中修改。找到相关的Java源文件frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java在getDefaultApConfiguration方法中对config.SSID变量进行赋值,该值就是对应的WLAN热点名称。...原创 2020-10-29 21:10:13 · 925 阅读 · 2 评论 -
Android 9 禁用按住电源键+音量加键进入工厂测试(recovery模式)功能
在某些特殊设备中可能需要禁掉这种Android系统自带的recovery模式功能找到bootloader阶段相关源文件vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt6771/boot_mode.c查看boot_mode_select函数,修改factory_forbidden变量的值int factory_forbidden = 1;找到lk阶段相关源文件vendor/mediatek/propriet原创 2020-10-29 20:55:18 · 3289 阅读 · 3 评论 -
Android 9 隐藏下拉状态栏中的快捷开关
当有需要对下拉状态栏中的快捷开关进行隐藏时,需找到以下Java源文件vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java找到createTileInternal方法,找到快捷开关对应的case值,例如***转储 SysUI 堆***对应的操作为以下代码块,将返回值修改为null即可隐藏该快捷开关if (Build.IS_DEBUGGABLE原创 2020-10-29 20:47:02 · 2261 阅读 · 0 评论 -
Android 9 屏蔽Launcher界面搜索框
找到以下XML文件packages/apps/Launcher3/res/layout/search_container_workspace.xml查找android:name属性值为以下数据的fragment,将该fragment全部注释掉android:name=com.android.launcher3.qsb.QsbContainerView$QsbFragment找到以下Java源文件packages/apps/Launcher3/src/com/android/laun.原创 2020-10-29 20:34:08 · 427 阅读 · 0 评论 -
Android 9 禁用Recent键或Home键
禁用Recent键找到以下Java源文件,toggleRecentApps方法中直接返回,不执行任何操作。vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/recents/Recents.java禁用Home键查找以下Java源文件,在interceptKeyBeforeDispatching方法中捕获Home键输入事件,并执行空操作。frameworks/base/services原创 2020-10-29 20:03:31 · 850 阅读 · 0 评论 -
Android 9 禁用下拉状态栏
Android9禁用下拉菜单Android源码目录中找到以下Java源文件vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.javaonDraggedDown函数返回值修改为false,不执行任何操作。...原创 2020-10-28 22:23:43 · 949 阅读 · 0 评论