You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过脚本/ADB命令在Android 9上指定应用图标位置?

可行方案:通过Root+ADB/开机脚本恢复图标布局

由于你已获取Root权限,完全可以通过操作Launcher的数据库来固定图标位置,以下是具体步骤:

1. 备份当前整理好的图标布局

首先在你手动整理完图标后,导出Launcher的布局数据库:

  • 原生Android 9的Launcher数据库路径为 /data/data/com.android.launcher3/databases/launcher.db;如果是第三方Launcher(如Nova),替换对应包名即可(比如Nova的路径是 /data/data/com.teslacoilsw.launcher/databases/nova.db)。
  • 用ADB+Root权限导出到SD卡:
    adb shell su -c "cp /data/data/com.android.launcher3/databases/launcher.db /sdcard/launcher_backup.db"
    
  • 可选:把备份文件拉到电脑留存:
    adb pull /sdcard/launcher_backup.db
    

2. 编写恢复脚本(两种方式可选)

方式一:电脑端ADB脚本(手动触发)

创建一个restore_launcher.sh脚本,内容如下:

# 停止Launcher进程
adb shell su -c "stop com.android.launcher3"
# 替换数据库
adb shell su -c "cp /sdcard/launcher_backup.db /data/data/com.android.launcher3/databases/launcher.db"
# 修复数据库权限(替换u0_aXX为Launcher的UID,可通过adb shell dumpsys package com.android.launcher3 | grep userId查看)
adb shell su -c "chmod 660 /data/data/com.android.launcher3/databases/launcher.db"
adb shell su -c "chown u0_aXX:u0_aXX /data/data/com.android.launcher3/databases/launcher.db"
# 重启Launcher
adb shell su -c "start com.android.launcher3"

每次重启后运行该脚本,图标就会恢复到备份时的布局。

方式二:手机端开机自动执行脚本(无需电脑)

利用Magisk的开机自启脚本功能,实现重启后自动恢复:

  1. 将备份的launcher_backup.db放到手机的/data/local/tmp/目录:
    adb push launcher_backup.db /data/local/tmp/
    
  2. 创建脚本文件/data/adb/service.d/restore_launcher_layout.sh,内容如下:
    #!/system/bin/sh
    # 等待SD卡加载完成,根据实际加载速度调整sleep时长
    sleep 30
    # 停止Launcher
    stop com.android.launcher3
    # 替换数据库
    cp /data/local/tmp/launcher_backup.db /data/data/com.android.launcher3/databases/launcher.db
    # 自动获取并设置UID权限
    LAUNCHER_UID=$(dumpsys package com.android.launcher3 | grep -oP 'userId=\K\d+')
    chmod 660 /data/data/com.android.launcher3/databases/launcher.db
    chown u0_a${LAUNCHER_UID}:u0_a${LAUNCHER_UID} /data/data/com.android.launcher3/databases/launcher.db
    # 清除Launcher缓存(可选,防止布局异常)
    rm -rf /data/data/com.android.launcher3/cache/
    # 重启Launcher
    start com.android.launcher3
    
  3. 给脚本添加执行权限:
    adb shell su -c "chmod +x /data/adb/service.d/restore_launcher_layout.sh"
    

注意事项

  • 不同Launcher的数据库结构和路径有差异,使用第三方Launcher时需替换对应包名和数据库文件名。
  • 调整sleep时长时,确保SD卡完全加载后再执行数据库替换,避免因SD卡未挂载导致替换失败。
  • 若替换后布局仍异常,可尝试清除Launcher的全部数据后再执行恢复脚本。

内容的提问来源于stack exchange,提问作者Letus252

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 17:25:20