Android软件调试记录

1、Android7.1禁用锁屏功能

		--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
		+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
		@@ -2488,7 +2488,7 @@ class DatabaseHelper extends SQLiteOpenHelper {
		             loadStringSetting(stmt, Settings.Secure.ACCESSIBILITY_SCREEN_READER_URL,
		                     R.string.def_accessibility_screen_reader_url);
		 
		-            if (SystemProperties.getBoolean("ro.lockscreen.disable.default", false) == true) {
		+            if (SystemProperties.getBoolean("ro.lockscreen.disable.default", true) == true) {
		                 loadSetting(stmt, Settings.System.LOCKSCREEN_DISABLED, "1");
		             } else {
		                 loadBooleanSetting(stmt, Settings.System.LOCKSCREEN_DISABLED,

2、Android7.1插入Usb设备启动应用时默认授权

		--- a/packages/SystemUI/src/com/android/systemui/usb/UsbPermissionActivity.java
		+++ b/packages/SystemUI/src/com/android/systemui/usb/UsbPermissionActivity.java
		@@ -109,9 +109,15 @@ public class UsbPermissionActivity extends AlertActivity
		         mClearDefaultHint = (TextView)ap.mView.findViewById(
		                                                     com.android.internal.R.id.clearDefaultHint);
		         mClearDefaultHint.setVisibility(View.GONE);
		-
		-        setupAlert();
		-
		+               
		+               //zeni modi usb Dialogs
		+               if(mPackageName.startsWith("com.hoppen.wax.test.testcamera")){
		+                       mPermissionGranted = true;
		+                       finish();
		+               }
		+               else {
		+                       setupAlert(); 
		+               }
		     }

3、Android桌面显示图标大小(显示密度)底部虚拟按键
修改device/rockchip/rk3368/rk3368H_64/system.prop中ro.sf.lcd_density=200
build.prop中加入qemu.hw.mainkeys=1 可以去掉底部虚拟按键

4、插上HDMI电视大概率不显示画面

	--- a/drivers/clk/rockchip/clk-rk3368.c
		+++ b/drivers/clk/rockchip/clk-rk3368.c
		@@ -96,6 +96,25 @@ static struct rockchip_pll_rate_table rk3368_pll_rates[] = {
		        { /* sentinel */ },
		 };
		 
		+static struct rockchip_pll_rate_table rk3368_npll_rates[] = {
		+       RK3066_PLL_RATE_NB(594000000, 1, 99, 4, 32),
		+       RK3066_PLL_RATE_NB(585000000, 6, 585, 4, 32),
		+       RK3066_PLL_RATE_NB(432000000, 3, 216, 4, 32),
		+       RK3066_PLL_RATE_NB(426000000, 3, 213, 4, 32),
		+       RK3066_PLL_RATE_NB(400000000, 1, 100, 6, 32),
		+       RK3066_PLL_RATE_NB(342000000, 3, 171, 4, 32),
		+       RK3066_PLL_RATE_NB(297000000, 2, 198, 8, 16),
		+       RK3066_PLL_RATE_NB(270000000, 1, 135, 12, 32),
		+       RK3066_PLL_RATE_NB(260000000, 1, 130, 12, 32),
		+       RK3066_PLL_RATE_NB(148500000, 1, 99, 16, 32),
		+       RK3066_PLL_RATE_NB(146250000, 6, 585, 16, 32),
		+       RK3066_PLL_RATE_NB(108000000, 1, 54, 12, 32),
		+       RK3066_PLL_RATE_NB(106500000, 4, 213, 12, 32),
		+       RK3066_PLL_RATE_NB(85500000, 4, 171, 12, 32),
		+       RK3066_PLL_RATE_NB(74250000, 4, 198, 16, 32),
		+};
		+
		+
		 PNAME(mux_pll_p)               = { "xin24m", "xin32k" };
		 PNAME(mux_armclkb_p)           = { "apllb_core", "gpllb_core" };
		 PNAME(mux_armclkl_p)           = { "aplll_core", "gplll_core" };
		@@ -148,7 +167,7 @@ static struct rockchip_pll_clock rk3368_pll_clks[] __initdata = {
		        [gpll] = PLL(pll_rk3066, PLL_GPLL, "gpll", mux_pll_p, 0, RK3368_PLL_CON(16),
		                     RK3368_PLL_CON(19), 8, 4, ROCKCHIP_PLL_SYNC_RATE, rk3368_pll_rates),
		        [npll] = PLL(pll_rk3066, PLL_NPLL, "npll",  mux_pll_p, 0, RK3368_PLL_CON(20),
		-                    RK3368_PLL_CON(23), 8, 5, 0, rk3368_pll_rates),
		+                    RK3368_PLL_CON(23), 8, 5, 0, rk3368_npll_rates),
		 };
		 
		 static struct clk_div_table div_ddrphy_t[] = {

5、rk3399 Uboot中关机充电(基本上是由于io口不受控引起,使能io口、给电基本上就可以了)

diff --git a/.config b/.config
		index 7f3cc81..20ecf57 100644
		--- a/.config
		+++ b/.config
		@@ -1029,8 +1029,7 @@ CONFIG_POWER_FG_CW201X=y
		 #
		 # IO Domain Support
		 #
		-# CONFIG_IO_DOMAIN is not set
		+CONFIG_IO_DOMAIN=y
		+CONFIG_ROCKCHIP_IO_DOMAIN=y
		 CONFIG_DM_PMIC=y
		 CONFIG_PMIC_CHILDREN=y
		 CONFIG_SPL_PMIC_CHILDREN=y
		diff --git a/drivers/power/pmic/rk8xx.c b/drivers/power/pmic/rk8xx.c
		index 870309d..832fccf
		--- a/drivers/power/pmic/rk8xx.c
		+++ b/drivers/power/pmic/rk8xx.c
		@@ -412,7 +412,8 @@ static int rk8xx_probe(struct udevice *dev)
		        uint8_t on_source = 0, off_source = 0;
		        uint8_t power_en0, power_en1, power_en2, power_en3;
		        uint8_t value;
		-
		+       pmic_reg_write(dev, REG_LDO_EN, 173);//使能LDO组电压以使能gpio2
		+       printf("REG_LDO_EN==lxx==0x%x\n",pmic_reg_read(dev, REG_LDO_EN) );
		        /* read Chip variant */
		        if (device_is_compatible(dev, "rockchip,rk817") ||
		            device_is_compatible(dev, "rockchip,rk809")) {
		diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
		index 71f5f1f..dbd7082
		--- a/arch/arm/mach-rockchip/rk3399/rk3399.c
		+++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
		@@ -115,7 +115,8 @@ int arch_cpu_init(void)
		 
		        /* Set perilp_nsp QOS priority to 3 for USB 3.0 */
		        writel(QOS_PRIORITY_LEVEL(3, 3), NIU_PERILP_NSP_ADDR);
		-
		+       writel(0xffff0300, PMU_GRF_SOC_CON0);//使能gpio1
		+       printf("==lxx==%d\n",readl(0xff320180));
		        return 0;
		 }

6、默认系统语言为中文

		diff --git a/tools/buildinfo.sh b/tools/buildinfo.sh
		index 7efe57e..9f9b509 100755
		--- a/tools/buildinfo.sh
		+++ b/tools/buildinfo.sh
		@@ -72,4 +72,9 @@ if [ -n "$BUILD_THUMBPRINT" ] ; then
		 fi
		 echo "ro.build.characteristics=$TARGET_AAPT_CHARACTERISTICS"
		 
		+persist.sys.language=zh
		+persist.sys.country=CN
		+ro.product.locale.language=zh
		+ro.product.locale.region=CN
		+
		 echo "# end build properties"

7、linux全屏显示(去掉上边栏)

		weston-3.0.0/clients/desktop-shell.c中做如下修改:永久修改可在“0020-compositor-drm-Support-controlling-output-dynamicall.patch”中加入一下补丁
		@ -1363,9 +1382,9 @ parse_panel_position(struct desktop *desktop, struct weston_config_section *s) {
		char *position;

		- desktop->want_panel = 1;
		+ desktop->want_panel = 0;

		- weston_config_section_get_string(s, "panel-position", &position, "top");
		+ weston_config_section_get_string(s, "panel-position", &position, "none");
		if (strcmp(position, "top") == 0) {
		desktop->panel_position = WESTON_DESKTOP_SHELL_PANEL_POSITION_TOP;
		} else if (strcmp(position, "bottom") == 0) {

8、去掉应添加gslx680.c触摸驱动导致桌面出现鼠标图标

		libinput-1.8.2/src/evdev.c中做如下修改:
		diff --git a/evdev.c b/evdev.c
		index ea0ed7a..9121264 100755
		--- a/evdev.c
		+++ b/evdev.c
		@@ -2652,8 +2652,7 @@ evdev_configure_device(struct evdev_device *device)
		                return dispatch;
		        }
		 
		-       if (udev_tags & EVDEV_UDEV_TAG_MOUSE ||
		-           udev_tags & EVDEV_UDEV_TAG_POINTINGSTICK) {
		+       if (udev_tags & EVDEV_UDEV_TAG_POINTINGSTICK) {
		                evdev_tag_external_mouse(device, device->udev_device);
		                evdev_tag_trackpoint(device, device->udev_device);
		                device->dpi = evdev_read_dpi_prop(device);

9、linux开机播放音频不出声:etc/init.d/S50launcher中播放音频前加play指令

		printf "Starting launcher: "
        export LC_ALL='zh_CN.utf8'
        export QT_QPA_PLATFORM=wayland
        export WESTON_DRM_MIRROR=1
        export WESTON_DRM_KEEP_RATIO=1
        export QT_GSTREAMER_WINDOW_VIDEOSINK=waylandsink
        mkdir -p /tmp/.xdg &&  chmod 0700 /tmp/.xdg
        export XDG_RUNTIME_DIR=/tmp/.xdg
        weston --tty=2 --idle-time=0&
        play
        sleep 1
        /usr/bin/PionpresueTM_ICP &
        #/usr/bin/QLauncher &

10、默认打开WiFi

		diff --git a/packages/SettingsProvider/res/values/defaults.xml 		     			           b/packages/SettingsProvider/res/values/defaults.xml
		index e9bcf2a..aef448d 100755
		--- a/packages/SettingsProvider/res/values/defaults.xml
		+++ b/packages/SettingsProvider/res/values/defaults.xml
		@@ -48,7 +48,7 @@
		     bool name="assisted_gps_enabled">true</bool>
		     bool name="def_netstats_enabled">true</bool>
		     bool name="def_usb_mass_storage_enabled">true</bool>
		-    bool name="def_wifi_on">false</bool>
		+   bool name="def_wifi_on">true</bool>
		     !-- 0 == never, 1 == only when plugged in, 2 == always -->
		     integer name="def_wifi_sleep_policy">2</integer>
		     bool name="def_networks_available_notification_on">true</bool>

11、关于屏闪问题
休眠唤醒后点击切换界面会出现屏闪,通过修改行列的前后尖等参数能改善,还有拔插HDMI会 影响屏的显示,适当抬高屏的频率能有效改善

12、在/sys/目录下创建文件节点

static ssize_t gslX680_show(struct device *dev,
	struct device_attribute *attr, char *buf){

	return sprintf(buf, "%d\n",lxx_data);
}

static ssize_t gslX680_store(struct device *dev,
	struct device_attribute *attr, const char *buf, size_t count){
	
	long open_data;
	int ret;
	int level;
	int ret1;

	ret1 = kstrtoul(buf, 10, &open_data);
	ret=sscanf(buf, "%i", &level);//%i可以把16进制转化为10进制
	lxx_data = (int)open_data;

	if(lxx_data==1){
		gsl_suspend(dev);
	}
	else{
		gsl_resume(dev);
	}
	return count;

}
static DEVICE_ATTR(gslX680_state,  S_IRUGO | S_IWUSR, gslX680_show, gslX680_store);
static struct attribute *gslX680_attributes[] = {
	&dev_attr_gslX680_state.attr,
	NULL,
};

static struct attribute_group ext_test_group = {
     .attrs = gslX680_attributes,
 };

13、设置默认输入法

diff --git a/android/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/android/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
index 82a3b13..b4caa2a 100755
--- a/android/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/android/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -208,4 +208,7 @@
 
     <!-- Default gesture screenrecord enable -->
     <integer name="def_gesture_screenrecord_enable">0</integer>
+
+    <string name="def_input_method" translatable="false">com.sohu.inputmethod.sogouoem/.SogouIME</string>
+    <string name="def_enable_input_methods" translatable="false">jp.co.omronsoft.openwnn/.OpenWnnJAJP:com.android.inputmethod.latin/.LatinIME:com.sohu.inputmethod.sogouoem/.SogouIME</string>
 </resources>
diff --git a/android/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/android/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
old mode 100644
new mode 100755
index 48fbf8e..6ea2998
--- a/android/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/android/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2394,6 +2394,13 @@ class DatabaseHelper extends SQLiteOpenHelper {
 
             loadSecure35Settings(stmt);
 
+            
+            loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,
+                    R.string.def_enable_input_methods);
+
+            loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
+                    R.string.def_input_method);
+
             loadBooleanSetting(stmt, Settings.Secure.MOUNT_PLAY_NOTIFICATION_SND,
                     R.bool.def_mount_play_notification_snd);

14、连WiFi时避过谷歌测试,加快连接速度以及去掉部分WiFi限制

diff --git a/android/frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java b/android/frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java
old mode 100644
new mode 100755
index d3a9354..d3e5434
--- a/android/frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java
+++ b/android/frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java
@@ -753,6 +753,7 @@ public class NetworkMonitor extends StateMachine {
 
     @VisibleForTesting
     protected CaptivePortalProbeResult isCaptivePortal() {
+       mIsCaptivePortalCheckEnabled = false;
         if (!mIsCaptivePortalCheckEnabled) {
             validationLog("Validation disabled.");
             return CaptivePortalProbeResult.SUCCESS;

15、修改系统版本号

diff --git a/tools/buildinfo.sh b/tools/buildinfo.sh
index 655418a..7f4a4ad 100755
--- a/tools/buildinfo.sh
+++ b/tools/buildinfo.sh
@@ -4,7 +4,10 @@ echo "# begin build properties"
 echo "# autogenerated by buildinfo.sh"
 
 echo "ro.build.id=$BUILD_ID"
-echo "ro.build.display.id=$BUILD_DISPLAY_ID"
+#echo "ro.build.display.id=$BUILD_DISPLAY_ID"
+
+echo "ro.build.display.id='v1.0.36s36n62'"
+
 echo "ro.build.version.incremental=$BUILD_NUMBER"
 echo "ro.build.version.sdk=$PLATFORM_SDK_VERSION"
 echo "ro.build.version.preview_sdk=$PLATFORM_PREVIEW_SDK_VERSION"

16、 Android10设置开机默认桌面

		--- a/core/java/com/android/internal/app/ResolverActivity.java
		+++ b/core/java/com/android/internal/app/ResolverActivity.java
		@@ -1758,6 +1758,10 @@ public class ResolverActivity extends Activity {
		                     currentResolveList.remove(info);
		                     break;
		                 }
		+                if("com.android.launcher3".equals(info.getResolveInfoAt(0).activityInfo.packageName)){
		+                    currentResolveList.remove(info);
		+                    break;
		+                }
		             }
		 
		             if (mOtherProfile == null) {

17、 Android11设置开机默认桌面

		--- a/core/java/com/android/internal/app/ResolverListAdapter.java
		+++ b/core/java/com/android/internal/app/ResolverListAdapter.java
		@@ -239,6 +239,11 @@ public class ResolverListAdapter extends BaseAdapter {
		                 currentResolveList.remove(info);
		                 break;
		             }
		+            
		+            if("com.android.launcher3".equals(info.getResolveInfoAt(0).activityInfo.packageName)){
		+                    currentResolveList.remove(info);
		+                    break;
		+                }
		         }
		 
		         if (mOtherProfile == null) {

18、隐藏顶部导航栏

		--- a/core/res/res/values/dimens.xml
		+++ b/core/res/res/values/dimens.xml
		@@ -35,7 +35,7 @@
		     <dimen name="status_bar_height">@dimen/status_bar_height_portrait</dimen>
		     <!-- Height of the status bar in portrait. The height should be
		          Max((status bar content height + waterfall top size), top cutout size) -->
		-    <dimen name="status_bar_height_portrait">24dp</dimen>
		+    <dimen name="status_bar_height_portrait">0dp</dimen>
		     <!-- Height of the status bar in landscape. The height should be
		          Max((status bar content height + waterfall top size), top cutout size) -->
		     <dimen name="status_bar_height_landscape">@dimen/status_bar_height_portrait</dimen>

19、经验证,RC522可实现双天线,且灵敏度与单天线一样。从TX1与TX2出线出并联两路天线回路即可,两路以上尚未验证,猜想也是可以实现。

20、WiFi连接受限,直接跳过校验过程

--- a/packages/SettingsProvider/res/values/defaults.xml
+++ b/packages/SettingsProvider/res/values/defaults.xml
@@ -17,8 +17,9 @@
  */
 -->
 <resources>
+       <integer name="def_captive_portal_mode">0</integer>
     <bool name="def_dim_screen">true</bool>
-    <integer name="def_screen_off_timeout">60000</integer>
+    <integer name="def_screen_off_timeout">2147483647</integer>
     <integer name="def_sleep_timeout">-1</integer>
     <bool name="def_airplane_mode_on">false</bool>
     <bool name="def_theater_mode_on">false</bool>
@@ -82,7 +83,7 @@
     <integer name="def_max_sound_trigger_detection_service_ops_per_day" translatable="false">1000</integer>
     <integer name="def_sound_trigger_detection_service_op_timeout" translatable="false">15000</integer>
 
-    <bool name="def_lockscreen_disabled">false</bool>
+    <bool name="def_lockscreen_disabled">true</bool>
     <bool name="def_device_provisioned">false</bool>
     <integer name="def_dock_audio_media_enabled">1</integer>
 
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
old mode 100644
new mode 100755
index 74d81ccb..e3bb9e11
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2425,6 +2425,9 @@ class DatabaseHelper extends SQLiteOpenHelper {
             stmt = db.compileStatement("INSERT OR IGNORE INTO global(name,value)"
                     + " VALUES(?,?);");
 
+            loadIntegerSetting(stmt, Settings.Global.CAPTIVE_PORTAL_MODE,
+                    R.integer.def_captive_portal_mode);
+
             // --- Previously in 'system'
             loadBooleanSetting(stmt, Settings.Global.AIRPLANE_MODE_ON,
                     R.bool.def_airplane_mode_on);

21、使用第三方apk做桌面应用,不用launcher

--- a/core/java/com/android/internal/app/ResolverListAdapter.java
+++ b/core/java/com/android/internal/app/ResolverListAdapter.java
@@ -239,6 +239,11 @@ public class ResolverListAdapter extends BaseAdapter {
                 currentResolveList.remove(info);
                 break;
             }
+            
+            if("com.android.launcher3".equals(info.getResolveInfoAt(0).activityInfo.packageName)){
+                    currentResolveList.remove(info);
+                    break;
+                }
         }
 
         if (mOtherProfile == null) {

22、kernel屏蔽报错:ccflags-y += -Wno-unused-result。该方法仅限警告性的错误

23、git 常规命令

1、创建并切换到分支:git checkout -b K2_4.4_to_8.1(需建立的分支) master(在该分支上建立)
2、将本地当前分支同步到仓库:git push origin HEAD
3、删除远程仓库分支:git checkout master   先切换到其它分支,git push origin --delete 分支名       然后再删除分支
4、本地分支重命名:git branch -m 原始名称 新名称
5、远程分支重命名:(1)先重命名本地分支 git branch -m 原始名称 新名称
				(2)删除远程分支 git push --delete origin 旧分支名称
				(3)上传新修改名称的本地分支 git push origin 新分支名称
				(4)修改后的本地分支关联远程分支 git branch --set-upstream-to origin/新分支名称

24、Makefile编译模块

ccflags-y += -Wno-unused-result
ccflags-y += -Wno-unused-function
obj-m :=och1970.o
LINUX_KERNEL_PATH :=/home/powersys/work/HSC_8541E_ALL_F/idh.code/out/target/product/sl8541e_1h10/obj/KERNEL/
CROSS_COMPILE_PATH :=/home/powersys/work/HSC_8541E_ALL_F/idh.code/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
PWD :=$(shell pwd)  
all:
	make ARCH=arm64 -C $(LINUX_KERNEL_PATH) M=$(PWD) CROSS_COMPILE=$(CROSS_COMPILE_PATH) modules
clean:
	make ARCH=arm64 -C $(LINUX_KERNEL_PATH) M=$(PWD) clean

25、sed命令

sed -i '/hello/d' file //删除file中包含hello关键字的行
sed -i '/hello/a\\test' file //在file文件中包含hello的行后添加一行test
sed -i '/hello/i\\test' file //在file文件中包含hello的行前添加一行test
sed -i "s/hello/test/g" file //在file文件中包含hello的行替换为test
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值