[{"data":1,"prerenderedAt":538},["ShallowReactive",2],{"blogStats":3,"\u002Fposts\u002F44\u002F":123,"surround-\u002Fposts\u002F44\u002F":532},{"total":4,"annual":7,"categories":20,"tags":80},{"posts":5,"words":6},39,10570,{"1":8,"2024":11,"2025":14,"2026":17},{"posts":9,"words":10},1,207,{"posts":12,"words":13},8,1188,{"posts":15,"words":16},26,7925,{"posts":18,"words":19},4,1250,[21,23,25,27,30,32,34,36,38,40,43,45,47,49,51,53,55,57,59,61,63,65,68,70,72,74,76,78],{"name":22,"posts":9},"cf X eo",{"name":24,"posts":9},"极域",{"name":26,"posts":9},"AI",{"name":28,"posts":29},"解决问题",3,{"name":31,"posts":9},"加油",{"name":33,"posts":9},"博客",{"name":35,"posts":9},"站点历程",{"name":37,"posts":9},"Aplayer",{"name":39,"posts":9},"研学",{"name":41,"posts":42},"主题",2,{"name":44,"posts":9},"十年之约",{"name":46,"posts":9},"游戏",{"name":48,"posts":9},"cloudflare",{"name":50,"posts":9},"漫展",{"name":52,"posts":9},"API",{"name":54,"posts":9},"我名字的由来",{"name":56,"posts":9},"Uptime Kuma",{"name":58,"posts":9},"哪吒监控",{"name":60,"posts":9},"大卡片",{"name":62,"posts":9},"非人哉",{"name":64,"posts":9},"trae",{"name":66,"posts":67},"未分类",9,{"name":69,"posts":9},"测速站",{"name":71,"posts":9},"被攻击",{"name":73,"posts":9},"小米",{"name":75,"posts":9},"个人虚拟备案系统",{"name":77,"posts":9},"主题音乐播放器预览",{"name":79,"posts":9},"分享爱国图片",[48,81,24,26,28,82,31,33,41,35,37,83,39,84,44,46,85,86,87,88,50,52,89,90,91,56,58,92,60,93,94,95,62,64,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,71,73,115,116,117,118,119,120,121,122],"EO","docker","江西","安知鱼","破解","CDN","furry","福瑞","名字","水文章","监控","美化","Link Card","Markdown","电影","广告","AI摘要","napcat","uptime kuma","cloudflare tunnel","coloros16","状态栏歌词","测速","安全","coloros15","火","电","随机图","api","Android","救砖","root","TWRP","KernelSU","pad","平板","虚拟备案","ICP","网站","预览","音乐","分享",{"id":124,"title":125,"body":126,"categories":510,"date":511,"description":135,"draft":512,"extension":513,"image":514,"meta":515,"navigation":518,"path":519,"permalink":520,"published":520,"readingTime":521,"recommend":520,"references":520,"seo":526,"sitemap":527,"stem":528,"tags":529,"type":530,"updated":520,"__hash__":531},"content\u002Fposts\u002F44.md","Android 救砖指南：set_policy_failed:\u002Fdata\u002Fadb 开机循环修复",{"type":127,"value":128,"toc":492},"minimark",[129,136,140,148,155,165,192,195,200,210,213,265,268,278,282,293,296,300,308,311,317,321,327,330,336,340,347,353,357,360,368,374,378,385,391,394,405,416,419,462,465],[130,131,132],"tip",{},[133,134,135],"p",{},"本文章由 AI 生成",[137,138,139],"h2",{"id":139},"故障现象",[133,141,142,143,147],{},"不小心把 ",[144,145,146],"code",{"code":146},"\u002Fdata\u002Fadb"," 删了之后，通常会按这个顺序出问题：",[149,150,151],"ol",{},[152,153,154],"li",{},"进 recovery 提示无法加载 Android 系统，或问要不要擦除数据，recovery 日志里会出现：",[156,157,163],"pre",{"className":158,"code":160,"language":161,"meta":162},[159],"language-text","recovery: Boot command: boot-recovery\nrecovery: --prompt_and_wipe_data\nrecovery: --reason=set_policy_failed:\u002Fdata\u002Fadb\n","text","",[144,164,160],{"__ignoreMap":162},[149,166,167,175,182],{"start":42},[152,168,169,170,174],{},"不同意擦机就会反复重启，后来直接变成",[171,172,173],"strong",{},"无限重启进 fastboot","，连 recovery 都进不去了",[152,176,177,178,181],{},"刷 TWRP 到 recovery 分区后，",[144,179,180],{"code":180},"fastboot reboot recovery"," 还是会掉回 fastboot",[152,183,184,185,188,189],{},"用 ",[144,186,187],{"code":187},"fastboot boot twrp.img"," 临时引导会报 ",[144,190,191],{"code":191},"Failed to load\u002Fauthenticate boot image: Load Error",[137,193,194],{"id":194},"故障原理",[196,197,199],"h3",{"id":198},"init-的加密策略检查","init 的加密策略检查",[133,201,202,203,205,206,209],{},"Android FBE 下，init 会在 post-fs-data 阶段校验 ",[144,204,146],{"code":146}," 的 fscrypt 加密策略。如果 ROM 用的是 ",[144,207,208],{"code":208},"encryption=Require","，策略设置不对就会直接要求擦机。",[133,211,212],{},"关键点：init 只校验策略，不会重新给目录授权。目录状态不一样，结果也就不一样：",[214,215,216,229],"table",{},[217,218,219],"thead",{},[220,221,222,226],"tr",{},[223,224,225],"th",{},"目录状态",[223,227,228],{},"检查结果",[230,231,232,241,249,257],"tbody",{},[220,233,234,238],{},[235,236,237],"td",{},"存在且带正确加密策略",[235,239,240],{},"正常开机",[220,242,243,246],{},[235,244,245],{},"存在但无加密策略（被管理器重建过）",[235,247,248],{},"失败，要求擦机",[220,250,251,254],{},[235,252,253],{},"不存在",[235,255,256],{},"失败，要求擦机（init 不会自动重建）",[220,258,259,262],{},[235,260,261],{},"存在且为空，权限属主正确",[235,263,264],{},"成功设置策略，正常开机",[196,266,267],{"id":267},"为何删了又会复现",[133,269,270,271,273,274,277],{},"删掉 ",[144,272,146],{"code":146}," 后，KernelSU、Magisk 这类 root 管理器会立刻用普通 ",[144,275,276],{"code":276},"mkdir"," 把目录重建出来，但不带加密策略。下次开机 init 检测到目录存在但没策略，校验就会失败。",[196,279,281],{"id":280},"为何会变成-fastboot-死循环","为何会变成 fastboot 死循环",[133,283,284,285,288,289,292],{},"A\u002FB 分区设备每次启动失败都会扣减 ",[144,286,287],{"code":287},"slot-retry-count","。两个 slot 的重试次数都耗尽且都被标记 ",[144,290,291],{"code":291},"unbootable"," 时，bootloader 就会直接进 fastboot 等待救援，连 recovery 都不再试了。",[137,294,295],{"id":295},"修复方法",[196,297,299],{"id":298},"_1-确认-fastboot-状态","1. 确认 fastboot 状态",[156,301,306],{"className":302,"code":304,"language":305,"meta":162},[303],"language-powershell","fastboot devices\nfastboot getvar all\n","powershell",[144,307,304],{"__ignoreMap":162},[133,309,310],{},"重点看这些：",[156,312,315],{"className":313,"code":314,"language":161,"meta":162},[159],"slot-unbootable:a: yes\nslot-unbootable:b: yes\nslot-retry-count:a: 0\nunlocked: yes\ncurrent-slot: a\n",[144,316,314],{"__ignoreMap":162},[196,318,320],{"id":319},"_2-重置-slot-并清除-bcb","2. 重置 slot 并清除 BCB",[156,322,325],{"className":323,"code":324,"language":305,"meta":162},[303],"fastboot set_active a\nfastboot getvar slot-unbootable:a  # 应显示 no\n",[144,326,324],{"__ignoreMap":162},[133,328,329],{},"做个全零 misc 镜像刷进去，把残留的启动命令清掉：",[156,331,334],{"className":332,"code":333,"language":305,"meta":162},[303],"fsutil file createnew misc_zero.img 1048576\nfastboot flash misc misc_zero.img\n",[144,335,333],{"__ignoreMap":162},[196,337,339],{"id":338},"_3-刷入-twrp","3. 刷入 TWRP",[133,341,342,343,346],{},"部分机型不支持 ",[144,344,345],{"code":345},"fastboot boot","，得刷进 recovery 分区：",[156,348,351],{"className":349,"code":350,"language":305,"meta":162},[303],"fastboot flash recovery_a TWRP.img\nfastboot flash recovery_b TWRP.img\nfastboot reboot recovery\n",[144,352,350],{"__ignoreMap":162},[196,354,356],{"id":355},"_4-在-twrp-里重建空的-dataadb","4. 在 TWRP 里重建空的 \u002Fdata\u002Fadb",[133,358,359],{},"进 TWRP 后用 adb shell 操作：",[156,361,366],{"className":362,"code":364,"language":365,"meta":162},[363],"language-bash","adb shell\n\n# 建议先备份（如有需要）\nadb pull \u002Fdata\u002Fadb .\u002Fadb_backup\n\n# 删掉有问题的目录并重建空目录\nrm -rf \u002Fdata\u002Fadb\nmkdir \u002Fdata\u002Fadb\nchmod 0700 \u002Fdata\u002Fadb\nchown 0:0 \u002Fdata\u002Fadb\nchcon u:object_r:adb_data_file:s0 \u002Fdata\u002Fadb\n\nls -laZd \u002Fdata\u002Fadb\n","bash",[144,367,364],{"__ignoreMap":162},[369,370,371],"caution",{},[133,372,373],{},"目录必须为空。init 只能在空目录上设置加密策略，非空目录会设置失败。开机后 root 管理器会自动把需要的文件重建回来。",[196,375,377],{"id":376},"_5-提交-f2fs-检查点并重启","5. 提交 f2fs 检查点并重启",[133,379,380,381,384],{},"TWRP 挂载 \u002Fdata 时通常带 ",[144,382,383],{"code":383},"checkpoint=disable","，直接重启的话改动会回滚：",[156,386,389],{"className":387,"code":388,"language":365,"meta":162},[363],"sync\nmount -o remount,checkpoint=enable \u002Fdata\nsync\ndd if=\u002Fdev\u002Fzero of=\u002Fdev\u002Fblock\u002Fby-name\u002Fmisc bs=2048 count=1\nsync\nadb reboot\n",[144,390,388],{"__ignoreMap":162},[137,392,393],{"id":393},"验证",[133,395,396,397,400,401,404],{},"重启后应该能正常进系统。KernelSU 会自动重建 ",[144,398,399],{"code":399},"ksu\u002F","、",[144,402,403],{"code":403},"ksud"," 这些文件夹，功能一切正常。",[133,406,407,408,411,412,415],{},"要是还没修好，可以看看 ",[144,409,410],{"code":410},"\u002Fsys\u002Ffs\u002Fpstore\u002F"," 里的上次内核日志，搜 ",[144,413,414],{"code":414},"set_policy_failed"," 找出是哪个目录出了问题，按同样的方法处理就行。",[137,417,418],{"id":418},"注意事项",[420,421,422,430,440,450,456],"ul",{},[152,423,424,429],{},[171,425,426,427],{},"别直接删 ",[144,428,146],{"code":146},"。要卸载 root 建议走管理器自带的卸载功能",[152,431,432,435,436,439],{},[171,433,434],{},"修改 \u002Fdata 后务必提交 checkpoint","。这是最容易踩的坑，直接 ",[144,437,438],{"code":438},"adb reboot"," 很可能导致回滚",[152,441,442,445,446,449],{},[171,443,444],{},"fastboot 死循环不用线刷","。先用 ",[144,447,448],{"code":448},"set_active"," 重置 slot 通常就能脱离",[152,451,452,455],{},[171,453,454],{},"建议备份 recovery","。刷 TWRP 后原厂 recovery 会被覆盖，要还原得刷回对应版本",[152,457,458,461],{},[171,459,460],{},"常备工具","。TWRP + platform-tools 是关键时刻最省事的救砖方案",[137,463,464],{"id":464},"参考",[420,466,467,476,485],{},[152,468,469],{},[470,471,475],"a",{"href":472,"rel":473},"https:\u002F\u002Ftechie-s.work\u002Fposts\u002F2026\u002F02\u002Ffix-set_policy_failed-when-tweaking-ksu",[474],"nofollow","Android折腾重启报set_policy_failed:\u002Fdata\u002Fadb - TLog",[152,477,478,479,400,482],{},"AOSP 源码：",[144,480,481],{"code":481},"system\u002Fcore\u002Finit\u002Fbuiltins.cpp",[144,483,484],{"code":484},"system\u002Fcore\u002Finit\u002Ffscrypt_init_extensions.cpp",[152,486,487],{},[470,488,491],{"href":489,"rel":490},"https:\u002F\u002Fwww.kernel.org\u002Fdoc\u002Fhtml\u002Flatest\u002Ffilesystems\u002Ffscrypt\u002Findex.html",[474],"fscrypt 文档",{"title":162,"searchDepth":18,"depth":18,"links":493},[494,495,500,507,508,509],{"id":139,"depth":42,"text":139},{"id":194,"depth":42,"text":194,"children":496},[497,498,499],{"id":198,"depth":29,"text":199},{"id":267,"depth":29,"text":267},{"id":280,"depth":29,"text":281},{"id":295,"depth":42,"text":295,"children":501},[502,503,504,505,506],{"id":298,"depth":29,"text":299},{"id":319,"depth":29,"text":320},{"id":338,"depth":29,"text":339},{"id":355,"depth":29,"text":356},{"id":376,"depth":29,"text":377},{"id":393,"depth":42,"text":393},{"id":418,"depth":42,"text":418},{"id":464,"depth":42,"text":464},[66],"2026-10-29",false,"md","https:\u002F\u002Fpic.fis.ink\u002Fend",{"category":516,"slots":517},[110],{},true,"\u002Fposts\u002F44",null,{"text":522,"minutes":523,"time":524,"words":525},"5 min read",4.275,256500,855,{"title":125,"description":135},{"loc":519},"posts\u002F44",[110,111,112,113,114],"tech","MmGS6ZzHxZmWo1ZtwD-zMDvJ_Kd6WwJ81U3ntSAhLFs",[533,520],{"title":534,"path":535,"stem":536,"date":537,"type":530,"children":-1},"更新随机图API","\u002Fposts\u002F43","posts\u002F43","2026-06-20",1793279899454]