Android
文章平均质量分 56
lancelots
Nothing to be afraid of
展开
-
View控件获取键盘输入事件(一)
View控件获取键盘输入事件过程原创 2022-09-21 17:01:16 · 596 阅读 · 1 评论 -
Wifi关闭状态下获取Wifi列表
文件修改路径:frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiSettingsStore.java private boolean getPersistedScanAlwaysAvailable() {// return Settings.Global.getInt(mContext.getContentResolver(),// Settings.Global.W...原创 2022-04-20 09:46:14 · 2388 阅读 · 0 评论 -
Android 7.0 运行时权限弹窗问题
Android 7.0系统在运行应用的时候,对权限做了诸多限制,normal, dangerous, signature, signatureOrSystem ,取决于保护级别,在确定是否授予权限时,系统可能采取不同的操作。normal 表示权限是低风险的,不会对系统、用户或其他应用程序造成危害;dangerous 表示权限是高风险的,系统将可能要求用户输入相关信息,才会授予此权限;sign...原创 2020-03-11 10:38:55 · 3586 阅读 · 0 评论 -
Android Studio导出jar包详细介绍(成功案例)
网上找了很多AS导出jar包的例子,但是我使用的时候总是各种问题,比如没有intermediates下没有bundles这种,现在我把我综合各种大佬们的讲解汇总我自己的方式。废话不多说,开整~1.创建新的项目选择Empty Activity就可以,project名称为testLib2.在新创建的project里再新建Module,选择Android Library,M...原创 2019-10-22 20:10:26 · 1511 阅读 · 1 评论 -
Android 默认语言修改
最新ODM由龙旗和华勤切换到文泰,整个代码的目录结构相对比较混乱,修改默认输入法这么简单的事情,竟然让我颇费周折,下面我记录一下我如何定位修改默认输入法的位置,下次遇到类似问题可以顺着这个思路迅速定位和解决问题.默认输入法一般都是定义在mk文件里的PRODUCT_LOCALES属性,所以我在项目里的full_base.mk文件中找到PRODUCT_LOCALES,并将第一个语言改为zh_CN...原创 2019-04-09 17:47:13 · 1467 阅读 · 0 评论 -
Anroid 内置APK
LOCAL_PATH := $(call my-dir)每个Android.mk文件必须以定义LOCAL_PATH为开始。它用于在开发tree中查找源文件。宏my-dir则由Build System提供。返回包含Android.mk的目录路径。include $(CLEAR_VARS) CLEAR_VARS 变量由Build System提供。并指向一个指定的GNU ...原创 2018-09-12 16:43:27 · 1127 阅读 · 0 评论 -
Android APN设置接口
APN(Access Point Name),即“接入点名称”,用来标识GPRS的业务种类,目前分为两大类:CMWAP(通过GPRS访问WAP业务)、CMNET(除了WAP以外的服务目前都用CMNET,比如连接因特网等)。在做项目的时候,客户会要求更换APN,我在frameworks/base/services/core/java/com/android/server/customized/Cus...原创 2018-08-31 19:40:02 · 3078 阅读 · 0 评论 -
Android selinux 权限问题
一 、 判断是否SELinux导致的问题,先执行:setenforce 0(临时禁用掉SELinux)getenforce (得到结果为Permissive)如果问题消失了,基本可以确认是SELinux造成的权限问题二、看log:cat /proc/kmsg | grep avc或dmesg | grep avc三、举例:audit(0.0:67): a...原创 2018-08-29 15:18:45 · 983 阅读 · 0 评论 -
通过SN控制设备
在frameworks/base/packages/SystemUI/AndroidManifest.xml注册service<service android:name=".ControlServer" android:exported="false" ></service>然后再指定路径下新建文件frameworks/base/packages/Sys...原创 2018-08-28 15:58:17 · 482 阅读 · 0 评论 -
apk签名失败问题
在给apk签名的时候会出现如下的问题,如何解决呢?Exception in thread "main" java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864) at j...原创 2018-08-28 15:40:59 · 4837 阅读 · 0 评论 -
Android init.rc自定义service
在package/app/下创建loop文件夹,然后编写自己的cpp文件loop.cpp#include <stdlib.h>#include <stdio.h>#include <unistd.h>#include <sys/stat.h>int main(){ int i=0; for(i;i<1000;...原创 2018-08-24 17:20:38 · 3250 阅读 · 0 评论 -
Android 6.0系统添加自定义service
Android 添加自定义service,首先在指定路径下新建frameworks/base/core/java/android/app/customized/ICustomizedService.aidl和frameworks/base/core/java/android/app/customized/CustomizedManager.java文件package android.app....原创 2018-08-24 17:21:44 · 834 阅读 · 0 评论 -
添加控制wifi白名单的接口
在frameworks/base/core/java/android/app/customized/ICustomizedService.aidl中添加接口package android.app.customized; interface ICustomizedService{ void setWifiWhiteList(inout List<String> wifii...原创 2018-08-28 15:15:56 · 1542 阅读 · 6 评论 -
Android 8.0内置Wifi
Android 8.0系统内wifi的连接信息是保存在WifiConfigStore.xml文件中,路径是data/misc/wifi/WifiConfigStore.xml,user版本的系统是没有权限访问这个路径的,所以我是编译出userdebug版本进行调试的.下面介绍如何内置自己的wifi.多说一下,为什么要内置wifi?我做的是工行的项目,像这种拥有支行或者分店比较多的公司,一般网络...原创 2019-01-21 16:31:22 · 3097 阅读 · 4 评论 -
Android 无障碍服务设置
项目中遇到需要将客户的无障碍服务设置为默认开启,无障碍服务,是可以监听界面的操作,比如:点击、拖动、界面更新等信息的,更为强大的是可以获取屏幕信息,同时具备普通Service的能力。具体如何设置呢?代码如下: try{ Set<ComponentName> enabledServices = AccessibilityUtils.getEnabl...原创 2018-11-14 15:20:53 · 8292 阅读 · 5 评论 -
As报错:Lambda expressions are not supported at language level '7'
解决方案:File->Project Structure->module然后这两项选择自己默认的jdk版本,点击apply就可以了原创 2019-08-27 20:12:40 · 409 阅读 · 0 评论 -
Android wifi提示已连接但是无法访问网络
Android6.0之后新增加了网络能力的标识类:NetworkCapabilities.java路径:frameworks/base/core/java/android/net/NetworkCapabilities.javapublic boolean hasCapability(int capability) { if (capability < MIN_NET...原创 2019-01-08 16:26:54 · 9881 阅读 · 5 评论 -
Android 屏蔽系统fastboot
项目中有遇到客户要求屏蔽fastboot刷机方式,路径再bootable/bootloader/lk/makefile文件中ifeq ($(TARGET_BUILD_VARIANT),user) CFLAGS += -DDISABLE_FASTBOOT_CMDS=1 //添加这几行代码就可以了endif...原创 2018-10-26 15:41:57 · 1313 阅读 · 0 评论 -
Android 设置默认锁屏壁纸接口
完成自定义service后,接下来就是具体实现接口1,在frameworks/base/core/java/android/app/customized/ICustomizedService.aidl中定义接口boolean setLockScreenWallpaper(String uri);2,在frameworks/base/core/java/android/app/cust...原创 2018-10-10 14:05:14 · 2855 阅读 · 0 评论 -
Android 平板出现这个提示:nvram warning err 0x10
客户在刷机后,发现平板出现这个提示:nvram warning err 0x10,简单介绍下 NVRAM WARNING含义1. NVRAM WARNING的意义Wi-Fi Driver会去侦测手机上 MT6620 Wi-Fi NVRAM的状况,如果侦测结果有错误的话,会把 Error Code显示在SCAN Result上。这样的目的是为了提示,把一些隐藏的问题暴露出来。举一个例子...转载 2018-10-19 14:53:12 · 2583 阅读 · 0 评论 -
Android 7.0 添加自定义service
Android 7.0 添加service,首先我列出一下自定义service需要配置的文件1,frameworks/base/core/java/android/app/customized/ICustomizedService.aidl2,frameworks/base/core/java/android/app/customized/CustomizedManager.java...原创 2018-08-28 14:03:37 · 1626 阅读 · 0 评论 -
Android 系统设置默认launcher
Android 项目中需要设置默认launcher,下面介绍如何设置,在ActivityManagerService的startHomeActivityLocked方法中会判断当前是否有默认launcher,如果没有的话,就会弹出选择框.下面将设置默认launcher的代码列出如下: private void setDefaultLauncher() { // get ...原创 2018-10-09 17:48:41 · 7122 阅读 · 0 评论 -
Anroid 7.0 Direct Boot研究
为了支持Dierect Boot模式,系统提供了两个存储数据的地方:1.Credential encrypted storage,默认存储数据的地方,仅在用户解锁手机后可用。2.Device encrypted storage,主要对应的就是Direct Boot使用的存储空间。在Direct Boot模式下和用户解锁手机后都可以使用的存储空间一般情况下,应用是无法在Direct Boot...原创 2018-08-28 16:14:27 · 2599 阅读 · 0 评论 -
Android frameworks实现navigationbar显示隐藏
由于前面的文章已经提供过如何自定义接口,这里就不在赘述了,只提最重要的几步,在frameworks/base/core/java/android/app/customized/ICustomizedService.aidl中定义controlNavigationBarVisibility接口,package android.app.customized; interface ICusto...原创 2018-08-28 16:26:45 · 739 阅读 · 0 评论 -
Android 静默安装和静默卸载实现
静默安装和卸载都是有PackageManager来处理的,我直接在CustomizedService.java类里实现这个方法,其他的文件我就不一一列出了.如下是静默卸载和安装接口silentUninstallPackage和silentInstallPackage,这两个接口都可以做成带有返回值的接口,静默卸载接口我觉得带有返回值意义不大,所以我就只做了一个带返回值的静默安装接口impor...原创 2018-08-30 10:37:41 · 2053 阅读 · 0 评论 -
Android 7.0导航栏上添加图标
Android 7.0的代码和6.0有很大变化,在导航栏上添加图标修改的文件更多些,我先列出需要修改的文件:1,frameworks/base/packages/SystemUI/res/layout/mark.xml2,frameworks/base/packages/SystemUI/res/drawable-sw600dp/custom_mark.png3,framewo...原创 2018-09-27 11:30:08 · 2826 阅读 · 4 评论 -
Android 前置摄像头的默认是180度,导致应用拍照和录制视频是倒立的问题修改
出问题的平板使用的是mediatek平台芯片,所以修改文件路径如下:vendor/mediatek/proprietary/custom/hq8735_6ttb_b2b_m/hal/imgsensor_metadata/common/config_static_metadata_common.h STATIC_METADATA_BEGIN(PROJECT, CAMERA, COMMON)...原创 2018-10-10 10:28:09 · 5956 阅读 · 0 评论 -
Android 设备管理器和有权查看使用情况的应用详解
Android中有很多的应用想要取得设备管理器权限,成为系统设备管理器之后可以实现锁屏、擦除用户数据等功能,项目中客户希望自己的app能够默认成为系统的设备管理器,如何操作呢?,下面来介绍一下: DevicePolicyManager mDPM = (DevicePolicyManager)mContext.getSystemService(Context.DEVICE_POL...原创 2018-11-12 15:26:38 · 4415 阅读 · 0 评论 -
Android 无障碍服务
无障碍服务,可以监听界面的操作,比如:点击、拖动、界面更新等信息。更为强大的是可以获取屏幕信息,同时具备普通Service的能力。(在别人手机中植入一个无障碍服务并开启,可以监听他的手机操作和屏幕信息,eg:获取微信、QQ当前聊天文字并上传)因为无障碍服务相比一般Service过于强大,安装后还需要在设置->辅助功能中手动开启。 创建AccessibilityService与声明...原创 2018-11-14 15:31:18 · 17697 阅读 · 2 评论 -
Android 拷贝文件夹到sdcard路径下
项目中遇到客户需要预置文件夹到sdcard路径下,sdcard路径是开机启动时才进行挂载,所以没有办法在ROM制作的时候进行拷贝,我的解决方案是通过系统级应用在开机完成后从别的路径下拷贝到sdcard路径下,然后再进行解压.下面我把这个应用的代码粘贴出来,希望大家共同进步,如果有更好的解决方案,可以互相交流应用共有三个类:1.MainActivity.java2.CopyInten...原创 2018-11-15 18:05:03 · 2415 阅读 · 0 评论 -
Android 禁止带有home属性的APP安装
过滤Home属性的应用,然后禁止此类应用的安装,目前定制项目中十有八九都是客户提供launcher,然后禁止别的launcher安装,如何屏蔽呢?修改文件frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java,修改里面的私有方法installNewPackageLIF, pr...原创 2018-11-22 10:39:02 · 1662 阅读 · 0 评论 -
Android 出现 avc: denied { execmod }如何处理?
内置应用会出现各种问题,不过内置应用会出现avc报错到还是第一次,报错如下:11-21 11:20:18.427 6603 6603 W tudent.activity: type=1400 audit(0.0:51): avc: denied { execmod } for path="/system/app/education_student/lib/arm/libhpHandPen...原创 2018-11-23 17:02:31 · 9023 阅读 · 8 评论 -
Android 调试app预装问题总结
预置app有很多注意事项,我简单总结几点:1,如果预置的app包含arm64-v8a,适配的机器是64位的,那么优先使用arm64-v8a下的lib文件,如果你非要放着arm64-v8a不用,用armeabi-v7a或者armeabi下的lib文件,那么应用会出现调用lib文件出错的问题.2.内置app的时候如果内置的lib文件下包含非so的lib文件,例如mdx结尾的文件,会出现机器开不...原创 2018-11-26 16:15:41 · 450 阅读 · 0 评论 -
Android studio报错:transformDexArchiveWithExternalLibsDexMergerForDebug
在依赖项目module时,出现如下报错:org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. at org.gradle.api.internal.tasks.execution....原创 2018-12-04 15:56:30 · 632 阅读 · 0 评论 -
Android 在导航栏上添加一个截屏按键,点击进行截屏
项目中碰到要求在导航栏上添加截屏按钮的要求,因为正常截屏是在下拉状态栏中,客户截屏操作觉得太麻烦了,所以下面介绍如何实现该功能:1,首先添加图标到导航栏上,如何添加图标请查询我之前的博客,链接:https://blog.csdn.net/lancelots/article/details/828642102,实现点击截屏,修改文件为PhoneStatusBar.java,路径framewo...原创 2019-02-01 16:49:17 · 1762 阅读 · 2 评论 -
Android 8.0应用安装流程源码分析
应用安装大致有四中方式:1,通过Adb进行安装,命令如下:adb install xxx.apk该命令是通过adb调用system/bin/pm脚本来生效的,命令对应的代码文件定义在commandline.cpp路径为system/core/adb/commandline.cppadb install命令在commandline中对应的方法是:int adb_command...原创 2019-08-05 16:09:52 · 419 阅读 · 0 评论 -
Android 8.0系统 默认赋予应用权限
private PackageInfo getCallingPackageInfo(String pkgName,Context context) { try { return context.getPackageManager().getPackageInfo(pkgName, PackageManager....原创 2019-08-05 16:09:20 · 1705 阅读 · 0 评论 -
Android 禁止应用启动并提示无法启动该应用
项目中遇到客户要求点击应用无法启动,并且提示该应用已被禁止运行,下面就介绍一下如何实现这个功能,当然自定义service是少不了的,我只把主要的几个列出,自定义service其他相关的文件,我就不一一列出了.1,在frameworks/base/core/java/android/app/customized/ICustomizedService.aidl中定义接口,定义的四个接口依次是添...原创 2018-10-08 16:37:21 · 3886 阅读 · 6 评论 -
Android 关于平板频繁出现广告弹窗恶意软件的调查与分析
关于联想平板频繁出现广告弹窗恶意软件的调查与分析20180110 1. 问题描述问题出现在客户广发和招行定制的一些平板电脑上,大概1万台里面有100台出现恶意广告。 2. 收集问题平板相关信息(1)确定平板的系统是android4.4.4 user版本。(2)通过dumpsys命令打印平板中安装的应用信息,确定病毒软件对应的软件包是Package [com....原创 2018-10-10 10:08:28 · 4187 阅读 · 2 评论 -
Android7.0 禁止锁屏状态的下拉状态栏
Android 7.0的禁止锁屏状态下的状态栏下拉,需要修改两个文件frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java需要如下代码,在handleQsTouch方法中修改如下:private boolean handleQsTouch...原创 2018-09-25 15:42:04 · 2550 阅读 · 0 评论