Android日常笔记

1、语言时区
android\build\make\tools\buildinfo.sh

echo "persist.sys.timezone=America/New_York"
echo "ro.product.locale=en-US"

注意中间是中横线,不是下划线,不然不生效的

2、Model
android\build\make\tools\buildinfo_common.sh

echo "ro.product.${partition}.model=product_model"

PRODUCT_BRAND 产品品牌
PRODUCT_DEVICE 产品设备
PRODUCT_MANUFACTURER 产品制造商
PRODUCT_MODEL 产品模型
PRODUCT_NAME 产品名称

3.开机动画
android\device\softwinner\ceres\ceres-b6\system\bootanimation.zip

4.蓝牙
android\device\generic\common\bluetooth\bdroid_buildcfg.h

#define BTM_DEF_LOCAL_NAME   "product_model"

5.开机logo

  • android\longan\device\config\chips\a133\configs\b6\bootlogo.bmp
  • android\longan\device\config\chips\a133\configs\b6\dragonboard\bootlogo.bmp
  • android\longan\device\config\chips\a133\configs\b6\android\bootlogo.bmp需删除此处logo

6.默认壁纸
待选图片放入此三处

  1. android\device\softwinner\ceres\common\overlay\overlay\frameworks\base\core\res\res\drawable-nodpi\default_wallpaper.png
  2. android\device\softwinner\ceres\common\overlay\overlay\frameworks\base\core\res\res\drawable-sw600dp-nodpi\default_wallpaper.png
  3. android\device\softwinner\ceres\common\overlay\overlay\frameworks\base\core\res\res\drawable-sw720dp-nodpi\default_wallpaper.png

此处删除已生成文件

  1. android\out\target\product\ceres-b6\obj\APPS\framework-res__auto_generated_rro_vendor_intermediates
  2. android\out\target\product\ceres-b6\obj\APPS\framework-res_intermediates
  3. android\out\target\common\obj\APPS\framework-res__auto_generated_rro_vendor_intermediates
  4. android\out\target\common\obj\APPS\framework-res_intermediates
  5. android\out\target\product\ceres-b6\vendor\overlay

7/预置壁纸
android\device\softwinner\ceres\C70W\overlay\overlay\packages\apps\WallpaperPicker2\res\drawable-nodpi

Settings的位置
android\frameworks\base\core\java\android\provider\Settings.java
8/Settings – Privacy – show password这个选项要关掉
android\packages\apps\Settings\src\com\android\settings\security\ShowPasswordPreferenceController.java

@Override
    public boolean isChecked() {
        return Settings.System.getInt(mContext.getContentResolver(),
                Settings.System.TEXT_SHOW_PASSWORD, 1) != 0;
}
=>
 @Override
    public boolean isChecked() {
        return Settings.System.getInt(mContext.getContentResolver(),
                Settings.System.TEXT_SHOW_PASSWORD, 0) != 0;
}

jgrep "animation"查找包含animation的文件位置
find -name "battery_scale.png"查找名为battery_scale.png的文件

9、充电动画

  1. android\longan\device\product\boot-resource\boot-resource\bat
    15张图文件可能过大
    分区改大android\device\softwinner\ceres\ceres-b6\system\sys_partition.fex
    name = bootloader_a
    size = 128M

  2. android\device\softwinner\common\health\images\ 替换battery_scale.png

    彩色256 位深度8;11张图

  3. android\system\core\healthd\healthd_mode_charger.cpp

{
  .disp_time = 750,
  .min_level = 0,
  .max_level = 9,
  .surface = NULL,
},
  1. android\device\softwinner\common\health\animation.txt
frame: 750 0 9
  1. 字体路径:

bootable/recovery/minui/graphics.cpp
bootable/recovery/minui/font_10x18.h

  1. 去除充电百分比数字

删掉android\device\softwinner\common\health\images\battery_percent.png

9、
public static String getDeviceBrand() {
FutureTask msvSuffixTask = new FutureTask<>(() -> DeviceInfoUtils.getMsvSuffix());

    msvSuffixTask.run();
    try {
        // Wait for msv suffix value.
        final String msvSuffix = msvSuffixTask.get();
        return Build.BRAND + msvSuffix;
    } catch (ExecutionException e) {
        Log.e(TAG, "Execution error, so we only show brand name");
    } catch (InterruptedException e) {
        Log.e(TAG, "Interruption error, so we only show brand name");
    }
    // If we can't get an msv suffix value successfully,
    // it's better to return brand name.
    return Build.BRAND;
}

10、更改Device name
android\packages\apps\Settings\src\com\android\settings\deviceinfo\DeviceNamePreferenceController.java

  private void initializeDeviceName() {
    //  mDeviceName = Settings.Global.getString(mContext.getContentResolver(),
    //          Settings.Global.DEVICE_NAME);
		mDeviceName = "LINSAY_F10XIPSQ";
        if (mDeviceName == null) {
            mDeviceName = Build.MODEL;
        }
    }

11.修改指纹
android\build\core\Makefile

define generate-common-build-props-with-product-vars-set
	BUILD_FINGERPRINT="$(BUILD_FINGERPRINT_FROM_FILE)" \
	BUILD_ID="$(BUILD_ID)" \
	BUILD_NUMBER="1812785103" \
	BUILD_VERSION_TAGS="$(BUILD_VERSION_TAGS)" \
	DATE="$(DATE_FROM_FILE)" \
	PLATFORM_SDK_VERSION="$(PLATFORM_SDK_VERSION)" \
	PLATFORM_VERSION_LAST_STABLE="$(PLATFORM_VERSION_LAST_STABLE)" \
	PLATFORM_VERSION="$(PLATFORM_VERSION)" \
	TARGET_BUILD_TYPE="$(TARGET_BUILD_VARIANT)" \
	bash $(BUILDINFO_COMMON_SH) "$(1)" >> $(2)
Endef

12、Build number版本号

build\make\tools\buildinfo.sh

echo "ro.build.display.id=$BUILD_DISPLAY_ID"

13、预置apk
device/softwinner/ceres/ceres_b6.mk
vendor/aw/public/prebuild/apk/MDM-30/
Android.mk

LOCAL_CERTIFICATE := platform

14、预置视频
android\packages\services\Mtp\src\com\android\mtp\CopyService.java

copyFile(new File("/system/video/Take Me To Your Heart.mp3"), new File("sdcard/Movies/Take Me To Your Heart.mp3"));

File f1 = new File("/data/data/copy_movie_flag");
Intent scanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
scanIntent.setData(Uri.fromFile(new File("mnt/sdcard/Movies/Take Me To Your Heart.mp3")));

android\device\softwinner\ceres\ceres_b6.mk

# video
PRODUCT_COPY_FILES += $(PRODUCT_DEVICE_PATH)/system/Take Me To Your Heart.mp3:system/video/Take Me To Your Heart.mp3

15、WiFi名称
frameworks/base/packages/SettingsProvider/res/values/defaults.xml

<string name="def_wifi_direct_name" translatable="false">product_name</string>

16、客户要求默认亮度为80%

92 =》 80%

frameworks\base\core\res\res\values\config.xml

<integer name="config_screenBrightnessSettingDefault">92</integer>

device/rockchip/common/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml

   <integer name="def_screen_brightness">92</integer>

17、横屏状态下,桌面的APK图标的名称packages/apps/Launcher3/src/com/android/launcher3/DeviceProfile.java

-            adjustToHideWorkspaceLabels();
+            //adjustToHideWorkspaceLabels();

18、音量加减互换
frameworks/base/data/keyboards/qwerty.kl
frameworks/base/data/keyboards/Generic.kl

key 114   VOLUME_UP
key 115   VOLUME_DOWN

19、热点默认名称
frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiApConfigStore.java

private SoftApConfiguration getDefaultApConfiguration() {
SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder();
configBuilder.setBand(SoftApConfiguration.BAND_2GHZ);
configBuilder.setSsid(mContext.getResources().getString(R.string.wifi_tether_configure_ssid_default) + "_" + getRandomIntForDefaultSsid());

以上注释掉+ “_” + getRandomIntForDefaultSsid()
frameworks/base/core/res/res/values/config.xml

<string name="wifi_tether_configure_ssid_default" translatable="false">新热点名</string>

20、wifi直连名称
android\frameworks\opt\net\wifi\service\java\com\android\server\wifi\p2p\WifiP2pServiceImpl.java

private String getPersistedDeviceName() {
            String deviceName = mSettingsConfigStore.get(WIFI_P2P_DEVICE_NAME);
            if (deviceName == null) {
                // We use the 4 digits of the ANDROID_ID to have a friendly
                // default that has low likelihood of collision with a peer
                String id = mFrameworkFacade.getSecureStringSetting(mContext,
                        Settings.Secure.ANDROID_ID);
                return "KidsTAB7";//+ id.substring(0, 4);
            }
            return deviceName;
        }

21、导航栏7列变4列
android\device\softwinner\ceres\common\overlay\overlay_go_2gb\packages\apps\Launcher3\go\res\xml

 <grid-option
        launcher:name="5_by_6"
        launcher:numRows="5"
        launcher:numColumns="6"
        launcher:numFolderRows="4"
        launcher:numFolderColumns="5"
        launcher:numHotseatIcons="4"
        launcher:dbFile="launcher_5_by_6.db"
        launcher:defaultLayoutId="@xml/default_workspace_5x6" >

22、取消谷歌包对apk的影响
android\vendor\aw\public\package\apk\Update
Android.mk文件改名(此处改为Android1.mk),让系统读取不到谷歌包中的该文件
android\device\softwinner\ceres\common\gms\config.mk
23、去掉通话apk信息apk
android\vendor\partner_gms\products\google_go_comms_suite.mk
android\vendor\partner_gms\apps_go\

24、修改Launcher3的Hotseat的位置到右侧的方法
把文件android/packages/apps/Launcher3/res/values-sw720dp/config.xml中的hotseat_transpose_layout_with_orientation由false改为true

/25、壁纸居中
Z:\disk04\zjh_work\MZ\A133_r0\android\frameworks\base\core\java\android\app\WallpaperManager.java

26、Fail修改地址
Z:\disk04\zjh_work\MZ\A133_r0\android\frameworks\base\cmds\am\src\com\android\commands\am\Instrument.java

27、丽色模式对比度最小值
android\packages\apps\Settings\src\com\android\settings\display\AwEnhanceModePreferenceController.java

mContrast.setMin(10);

28、指纹
android\build\make\core\Makefile

29、查看指纹
android\out\target\product\ceres-b6\debug_ramdisk\prop.default
30、OTA差分包
在这里插入图片描述

android\build\tools\releasetools\ota_from_target_files

androidgroup06@androidgroup06:~android$ ota_from_target_files -i ota/smr/ceres_b6-signed_target_files-eng.androidgroup06.zip ota/gms/ceres_b6-signed_target_files-eng.androidgroup06.zip update.zip
需要先把out目录下的lib和framework放到build/tools目录下才能编译

ota_from_target_files -i [target_file_v1.zip] [target_file_v1.zip] ota_inc.zip
[target_file_v1.zip] 表示经过签名的版本V1的TargetFile
[target_file_v1.zip] 表示经过签名的版本V1的TargetFile
[ota_inc.zip] 表示命令输出得到的OTA差分包

Z:\disk04\zjh_work\MZ\A133_r0\android\longan\device\config\chips\a133\configs\b6\sys_config.fex
[dram_para2]
;lpddr4 单200ball 特别注意:使用LPDDR4颗粒的时候,1080P方案的DRAM频率要792M
dram_clk = 768

31、去掉紧急呼叫
在这里插入图片描述

android\frameworks\base\core\res\res\values\config.xml

<!--<item>emergency</item>-->

android\frameworks\base\packages\SystemUI\src\com\android\systemui\globalactions\GlobalActionsDialog.java

//addIfShouldShowAction(tempActions, new EmergencyDialerAction());

//return new EmergencyDialerAction();

在这里插入图片描述

33、编译报错

FAILED: build/make/core/Makefile:49: error: overriding commands for
target `out/target/product/ceres-b6/product/etc/sysconfig/google.xml’,
previously defined at build/make/core/base_rules.mk:492 14:30:03 ckati
failed with: exit status 1

android\vendor\partner_gms\products\gms_go.mk

# Workaround for b/138542583
PRODUCT_COPY_FILES += $(ANDROID_PARTNER_GMS_HOME)/etc/sysconfig/google_go.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/sysconfig/google_go.xml

根据需求表里的GMS Express+来看,如果GMS Express+是则为gms-express.xml,如果如果GMS Express+空则为google_go.xml

34、oem锁灰色
android\vendor\partner_gms\products\gms_go.mk
加上OobConfig

PRODUCT_PACKAGES := \
    AndroidPlatformServices \
    ConfigUpdater \
    GoogleExtShared \
    GoogleFeedback \
    GoogleLocationHistory \
    GoogleOneTimeInitializer \
    GooglePackageInstaller \
    GooglePartnerSetup \
    GooglePrintRecommendationService \
    GoogleRestore \
    GoogleServicesFramework \
    GoogleSpeechServices \
    GoogleCalendarSyncAdapter \
    GoogleContactsSyncAdapter \
    GoogleTTS \
    GmsCoreGo \
    Phonesky \
    SetupWizard \
    WebViewGoogle \
    Wellbeing \
	OobConfig

加上OobConfig
35、定义2GB
android\device\softwinner\ceres\ceres_b6.mk

diff --git a/android/device/softwinner/ceres/ceres_b6.mk 
b/android/device/softwinner/ceres/ceres_b6.mk
index a0c7613be0..9d2136c6c0 100644
--- a/android/device/softwinner/ceres/ceres_b6.mk
+++ b/android/device/softwinner/ceres/ceres_b6.mk
@@ -15,6 +15,7 @@ PRODUCT_DEVICE_PATH := $(PRODUCT_PLATFORM_PATH)/$(PRODUCT_DEVICE)
 CONFIG_LOW_RAM_DEVICE := true
 CONFIG_SUPPORT_GMS := true
 CONFIG_OTA_FROM_10 := false
+CONFIG_LOW_RAM_2GB_DEVICE := true
 
 
 PRODUCT_COPY_FILES += $(PRODUCT_PREBUILT_PATH)/bImage:kernel

36、Client-id(在这里插入图片描述) 不能为空
Z:\disk04\zjh_work\JH\android\vendor\partner_gms\products\gms_go_2gb.mk
setupwizard.theme=glif_v3_light
ro.com.google.clientidbase=android-along
ro.opa.eligible_device=true \

37、修改电池曲线3000mA
Z:\disk01\A100R\ChengFeng_V2.2\android\longan\device\product\configs\c70w\board.dts

pmu_battery_rdc= <120>;
			pmu_battery_cap = <3000>;
			pmu_runtime_chgcur = <1200>;
			pmu_suspend_chgcur = <1650>;
			pmu_shutdown_chgcur = <1650>;

38、修改分辨率
Z:\disk04\zjh_work\MZ\A133_r0\android\device\softwinner\ceres\ceres-b6\camera\camera.cfg
在这里插入图片描述

39、常见fail

"android.media.cts.MediaPlayerTest#testRecordedVideoPlayback0",
"android.media.cts.MediaPlayerTest#testRecordedVideoPlayback180",
"android.media.cts.MediaPlayerTest#testRecordedVideoPlayback270",
"android.media.cts.MediaPlayerTest#testRecordedVideoPlayback90",

40、安全补丁日期
Z:\disk01\A100R\ChengFeng_V2.2\android\build\make\core\version_defaults.mk

 PLATFORM_SECURITY_PATCH := 2021-12-05

41、制作patch
./makepatch.sh 序列号1 序列号2
42、过SMR需要的OS
android\build\make\tools\buildinfo.sh

echo "ro.build.version.base_os=$PLATFORM_BASE_OS"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值