{"id":1587,"date":"2022-11-13T19:31:29","date_gmt":"2022-11-13T11:31:29","guid":{"rendered":"https:\/\/www.jarvisw.com\/?p=1587"},"modified":"2022-11-20T22:42:33","modified_gmt":"2022-11-20T14:42:33","slug":"%e7%bb%99pixel-7-7-pro%e6%b7%bb%e5%8a%a032%e4%bd%8dapk%e6%94%af%e6%8c%81","status":"publish","type":"post","link":"https:\/\/www.jarvisw.com\/?p=1587","title":{"rendered":"\u7ed9Pixel 7\/7 Pro\u6dfb\u52a032\u4f4dapk\u652f\u6301"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u5f88\u65e9\u5c31\u6709\u4f20\u95fb\uff0cPixel 7\u5c06\u4f1a\u662f\u7b2c\u4e00\u53f0\u7eaf64\u4f4dAndroid\u8bbe\u5907\uff0c\u4e0d\u80fd\u5b89\u88c5\u7eaf32\u4f4dapk\uff0c\u7b14\u8005\u4e5f\u62ff\u5230\u4e86\u4e00\u53f0\u7f8e\u7248Pixel 7\uff0c\u5c31\u5c1d\u8bd5\u4e86\u4e00\u4e0b\uff0c\u53d1\u73b0\u786e\u5b9e\u65e0\u6cd5\u5b89\u88c532\u4f4dapk:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"52\" src=\"https:\/\/www.jarvisw.com\/wp-content\/uploads\/2022\/11\/\u56fe\u7247-9-1024x52.png\" alt=\"\" class=\"wp-image-1589\" srcset=\"https:\/\/www.jarvisw.com\/wp-content\/uploads\/2022\/11\/\u56fe\u7247-9-1024x52.png 1024w, https:\/\/www.jarvisw.com\/wp-content\/uploads\/2022\/11\/\u56fe\u7247-9-300x15.png 300w, https:\/\/www.jarvisw.com\/wp-content\/uploads\/2022\/11\/\u56fe\u7247-9-768x39.png 768w, https:\/\/www.jarvisw.com\/wp-content\/uploads\/2022\/11\/\u56fe\u7247-9.png 1470w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u63d0\u793aISNTALL_FAILED_NO_MATCHING_ABIS,\u6211\u4eecgetporp\u770b\u4e00\u4e0babi:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\npanther:\/ $ getprop | grep abi\n&#x5B;ro.product.cpu.abi]: &#x5B;arm64-v8a]\n&#x5B;ro.product.cpu.abilist]: &#x5B;arm64-v8a]\n&#x5B;ro.product.cpu.abilist32]: &#x5B;]\n&#x5B;ro.product.cpu.abilist64]: &#x5B;arm64-v8a]\n\npanther:\/ $ getprop | grep zygote\n&#x5B;ro.zygote]: &#x5B;zygote64]\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u4ee5\u770b\u5230\uff0cabilist32\u662f\u7a7a\u7684\uff0c\u6574\u4e2a\u624b\u673a\u53ea\u652f\u630164\u4f4dABI\uff0czygote\u4f7f\u7528\u7684\u662fzygote64\uff0c\u56e0\u6b64\u5bfc\u81f4\u88c5\u4e0d\u4e0a\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u540c\u6837\u7684\uff0c\u5bf9\u6bd4\u4e00\u4e0bPixel 6\u7684\u60c5\u51b5\uff0c\u53d1\u73b0Pixel 6\u662f\u652f\u6301\u7684\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\noriole:\/ $ getprop | grep abi\n&#x5B;ro.product.cpu.abi]: &#x5B;arm64-v8a]\n&#x5B;ro.product.cpu.abilist]: &#x5B;arm64-v8a,armeabi-v7a,armeabi]\n&#x5B;ro.product.cpu.abilist32]: &#x5B;armeabi-v7a,armeabi]\n&#x5B;ro.product.cpu.abilist64]: &#x5B;arm64-v8a]\n\noriole:\/ $ getprop | grep zygote\n&#x5B;ro.zygote]: &#x5B;zygote64_32]\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u652f\u6301\u4e86\u5b8c\u6574\u7684armeabi-v7a\u548carmeabi\u3002\u5e76\u4e14\u4f7f\u7528\u7684zygote\u662fzygote64_32\uff0c\u53ef\u4ee5\u652f\u630132\u4f4dapk\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fdb\u4e00\u6b65\u6d4b\u8bd5\u53d1\u73b0\uff0cPixel 7\u8bbe\u5907\u4e2d\uff0c\u5b58\u572832\u4f4dlib\u76ee\u5f55\uff0c\u548capp_process32(zygote32)\u7a0b\u5e8f\uff0c\u56e0\u4e3aabilist\u4e2d\u6ca1\u670932\u4f4dABI\uff0c\u56e0\u6b6432\u4f4d\u7684zygote\u6ca1\u6709\u542f\u52a8\uff0c\u5b9e\u6d4b\u4e5f\u53ef\u4ee5\u8fd0\u884cELF32\u7a0b\u5e8f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u5c31\u8bf4\u660e\u4e86\uff0cPixel 7\u5b9e\u9645\u4e0a\u53ea\u662f\u7cfb\u7edf\u5c42\u9762\u9650\u5236\u4e0d\u8ba9\u5b89\u88c5\uff0c\u5b9e\u9645\u4e0a32\u4f4dnative\u652f\u6301\u662f\u5b8c\u6574\u7684\uff0c\u90a3\u4e48\uff0c\u5982\u679c\u8981\u8ba9Pixel 7\u53ef\u4ee5\u5b89\u88c532\u4f4dapk\uff0c\u662f\u4e0d\u662f\u628aabilist\u4e2d\u7684prop\u52a0\u56de\u53bb\u5c31\u53ef\u4ee5\u4e86\u5462\uff1f\u7ecf\u8fc7\u7b14\u8005\u4e00\u756a\u6298\u817e\u6d4b\u8bd5\uff0c\u53d1\u73b0\u662f\u53ef\u884c\u7684\u3002\u8fd9\u91cc\u7ed9\u51fa\u4e24\u4e2a\u65b9\u6848\uff1a<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u65b9\u6848\u4e00\uff1a\u4fee\u6539vendor.img\u4e2d\u7684build.prop\u6587\u4ef6\u5237\u673a<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u7ecf\u8fc7\u6700\u540e\u786e\u8ba4\uff0cPixel 7\u7684ro.product.cpu.abilist\u5c5e\u6027\u662finit\u8fdb\u7a0b\u901a\u8fc7\u8bfb\u53d6\/vendor\/build.prop\u4e2d\u7684ro.vendor.product.cpu.abilist\u8bbe\u7f6e\u7684\uff0c\u56e0\u6b64\u9700\u8981\u4fee\u6539vendor.img\uff0c\u5728\u8fd9\u91cc\u7ed9\u51fa\u4fee\u6539\u65b9\u6cd5\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u53bbGoogle\u5b98\u65b9<a href=\"https:\/\/developers.google.com\/android\/images\">https:\/\/developers.google.com\/android\/images<\/a>\u4e0b\u8f7d\u4e00\u4efd\u548c\u624b\u673a\u4e2dBuild\u7248\u672c\u76f8\u540c\u7684\u5237\u673a\u5305\uff0c\u89e3\u538b\uff0c\u4ece\u4e2d\u5f97\u5230<s>vendor.img\u548cvbmeta_vendor.img\u6587\u4ef6<\/s><strong>vendor.img,vbmeta.img,\u548cvbmeta_vendor.img\u6587\u4ef6<\/strong>\u3002\u63a5\u4e0b\u6765\u4fee\u6539vendor.img\u4e2d\u7684build.prop<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ file vendor.img  \nvendor.img: Linux rev 1.0 ext2 filesystem data, UUID=defad607-7fa7-5dc3-8ba5-b7843eb7d85d, volume name &quot;vendor&quot; (extents) (large files) (huge files)\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u91cc\u770b\u8d77\u6765\u5237\u673a\u5305\u91cc\u9762\u7684vendor.img\u4e0d\u662fspare image\uff0c\u76f4\u63a5\u5c31\u662fext\u6587\u4ef6\u7cfb\u7edf\u4e86\uff0c\u90a3\u8bd5\u8bd5\u76f4\u63a5\u6302\u8f7d\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n$ sudo mount vendor.img \/mnt\/test \nmount: \/mnt\/test: wrong fs type, bad option, bad superblock on \/dev\/loop16, missing codepage or helper program, or other error.\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u76f4\u63a5\u6302\u8f7d\u5931\u8d25\uff0c\u67e5\u770bdmesg\uff0c\u53d1\u73b0\u5931\u8d25\u539f\u56e0\u662f\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">EXT4-fs (loop16): couldn&#8217;t mount RDWR because of unsupported optional features (4000)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7f51\u4e0a\u641c\u4e86\u4e00\u4e0bfeature 0x4000\u662f\u4ec0\u4e48\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n#define EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS 0x4000\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7\u4e00\u756a\u6d4b\u8bd5\u53d1\u73b0\uff0cvendor\u53ef\u4ee5\u6302\u8f7d\u4e3aro\uff0c\u4f46\u662f\u4e00\u65e6\u6302\u8f7d\u4e3arw\uff0c\u5c31\u4f1a\u63d0\u793a\u4e0a\u9762\u7684\u9519\u8bef<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo mount -t ext4 -o loop,ro vendor.img \/mnt\/test #\u6210\u529f\nsudo mount -t ext4 -o loop,rw vendor.img \/mnt\/test #\u5931\u8d25\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u901a\u8fc7tun2fs\u67e5\u770b\uff0c\u786e\u5b9evendor.img\u6bd4\u53ef\u4ee5\u6302\u8f7d\u4e3arw\u7684ext4\u955c\u50cf\u591a\u4e86\u4e00\u4e2ashared_blocks feature\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ tune2fs -l vendor.img | grep feat\nFilesystem features:      ext_attr dir_index filetype extent sparse_super large_file huge_file uninit_bg dir_nlink extra_isize shared_blocks\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u90a3\u6709\u6ca1\u6709\u529e\u6cd5\u53bb\u6389\u8fd9\u4e2afeature\u5462\uff1f\u7ecf\u8fc7\u4e86\u4e00\u756a\u641c\u7d22\uff0c\u7f51\u4e0a\u5927\u591a\u6570\u4eba\u4e5f\u90fd\u78b0\u5230\u8fd9\u6837\u7684\u95ee\u9898\uff0c\u4f46\u6700\u540e\u90fd\u6ca1\u6709\u4ec0\u4e48\u7279\u522b\u7684\u89e3\u51b3\u529e\u6cd5\uff0c\u627e\u4e86\u5f88\u957f\u65f6\u95f4\u7ec8\u4e8e\u5728\u4e00\u4e2asystemrw\u7684\u9879\u76ee\u91cc\u627e\u5230\u4e86\u4e00\u4e2a\u53ef\u7528\u7684\u65b9\u6cd5\uff0c\u5c31\u662f\u7528e2fsck -E unshare_block\u547d\u4ee4\u53bb\u6389feature\uff0c\u4e0b\u9762\u8bf4\u8fc7\u7a0b\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u5c06\u955c\u50cf\u6587\u4ef6\u6269\u5bb9\uff0c\u5426\u5219\u5728\u540e\u9762\u7684\u64cd\u4f5c\u4e2d\uff0c\u4f1a\u56e0\u4e3a\u955c\u50cf\u6ca1\u6709\u7a7a\u95f4\u800c\u5931\u8d25\uff0c\u6211\u8fd9\u91cc\u7684vendor.img\u5927\u5c0f\u662f665M\uff0c\u56e0\u4e3a\u6211\u4eec\u53ea\u9700\u8981\u6539build.prop\uff0c\u7a0d\u5fae\u6269\u5927\u4e00\u70b9\u5c31\u884c\uff0c\u6211\u8fd9\u91cc\u7ed9\u4e86670M\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nfallocate -l 670M vendor.img\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u63a5\u4e0b\u6765\u5bf9\u955c\u50cf\u8fdb\u884c\u64cd\u4f5c\uff0c\u89e3\u9664shared_blocks feature:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\ne2fsck -yf vendor.img\nresize2fs vendor.img 670M\ne2fsck -y -E unshare_blocks vendor.img\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u6b63\u5e38\u6765\u8bf4\u7684\u8bdd\uff0c\u8fd9\u6837\u5c31\u53bb\u6389\u4e86vendor.img\u7684shared_blocks\u7279\u6027\uff0c\u6211\u4eec\u91cd\u65b0\u7528tun2fs\u770b\u4e00\u4e0b\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ tune2fs -l vendor.img | grep feat\nFilesystem features:      ext_attr dir_index filetype extent sparse_super large_file huge_file uninit_bg dir_nlink extra_isize\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u4ee5\u770b\u5230\u679c\u7136\u5df2\u7ecf\u53bb\u6389\u4e86\uff0c\u73b0\u5728\u5c1d\u8bd5\u6302\u8f7d\uff0c\u5c31\u53ef\u4ee5\u6210\u529f\u6302\u8f7d\u4e3arw\u4e86\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo mount -t ext4 -o loop,rw vendor.img \/mnt\/test\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u7136\u540e\u63a5\u4e0b\u6765\u6211\u4eec\u4fee\u6539build.prop\u6587\u4ef6\uff0c\u53ea\u9700\u8981\u4fee\u6539\u5982\u4e0b\u51e0\u884c\u5c31\u53ef\u4ee5\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nro.vendor.product.cpu.abilist=arm64-v8a,armeabi-v7a,armeabi  #\u5728\u540e\u9762\u52a0\u4e0aarmeabi-v7a,armeabi\nro.vendor.product.cpu.abilist32=armeabi-v7a,armeabi   #\u52a0\u4e0a32\u4f4dabi\u652f\u6301\nro.vendor.product.cpu.abilist64=arm64-v8a\nro.zygote=zygote64_32       #zygote64\u6539\u4e3azygote64_32\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u4fee\u6539\u5b8c\u6210\u4ee5\u540e\u4fdd\u5b58\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo umount \/mnt\/test\ne2fsck -yf vendor.img\nresize2fs -M vendor.img  #\u538b\u7f29\u5927\u5c0f\uff0c\u53bb\u6389\u65e0\u7528\u7a7a\u95f4\ne2fsck -yf vendor.img\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u7136\u540e\u63a5\u4e0b\u6765\u6211\u4eec\u5c1d\u8bd5\u5c06vendor.img\u5237\u56de\u624b\u673a\u3002\u4f46\u662f\u8fd9\u91cc\u8fd8\u9700\u8981\u89e3\u51b3\u4e00\u4e2a\u95ee\u9898\uff0c\u5c31\u662fPixel 7\u76f8\u6bd4Pixel 6\uff0c\u591a\u4e86\u4e00\u4e2avbmeta_vendor\u5206\u533a\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u5f00\u673a\u8fc7\u7a0b\u4e2d\uff0c\u4e5f\u4f1a\u5bf9vendor\u5206\u533a\u8fdb\u884c\u6821\u9a8c\uff0c\u5982\u679c\u4fee\u6539\u4e86vendor\u5206\u533a\uff0c\u4e5f\u4f1a\u56e0\u4e3a\u6821\u9a8c\u4e0d\u901a\u8fc7\u800c\u65e0\u6cd5\u542f\u52a8\uff0c<s>\u56e0\u6b64\u4e5f\u9700\u8981\u5bf9vbmeta_vendor\u5206\u533a\u8fdb\u884cpatch<\/s><strong>\u7ecf\u8fc7\u591a\u6b21\u6d4b\u8bd5\uff0c\u9700\u8981\u540c\u65f6\u4fee\u6539vbmeta\u548cvbmeta_vendor\uff08\u7b14\u8005\u505a\u5b9e\u9a8c\u65f6\uff0c\u5bf9vbmeta,vbmeta_system,vbmeta_vendor\u90fd\u8fdb\u884c\u4e86\u4fee\u6539\uff09<\/strong>\uff0c\u53bb\u6389\u6821\u9a8c\uff0c\u4fee\u6539vbmeta_vendor.img\u7684\u7b2c124\u4e2a\u5b57\u8282\uff08\u5176\u4ed6vbmeta\u5206\u533a\u4fee\u6539\u540c\u7406\uff09\uff0c\u6539\u621003\uff1a(03\u7684\u542b\u4e49\u662fdisable dm-verity and verification)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"846\" height=\"610\" src=\"https:\/\/www.jarvisw.com\/wp-content\/uploads\/2022\/11\/\u56fe\u7247-10.png\" alt=\"\" class=\"wp-image-1591\" srcset=\"https:\/\/www.jarvisw.com\/wp-content\/uploads\/2022\/11\/\u56fe\u7247-10.png 846w, https:\/\/www.jarvisw.com\/wp-content\/uploads\/2022\/11\/\u56fe\u7247-10-300x216.png 300w, https:\/\/www.jarvisw.com\/wp-content\/uploads\/2022\/11\/\u56fe\u7247-10-768x554.png 768w\" sizes=\"auto, (max-width: 846px) 100vw, 846px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u7136\u540e\u542f\u52a8\u5230fastboot\u8fdb\u884c\u5237\u673a\uff1a\uff08\u89e3\u9501BL\u7684\u8fc7\u7a0b\u6559\u7a0b\u5f88\u591a\uff0c\u8fd9\u91cc\u5c31\u4e0d\u591a\u8bf4\u4e86\uff09<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nadb reboot-bootloader\nfastboot flash vbmeta vbmeta_patched.img\nfastboot flash vbmeta_vendor vbmeta_vendor_patched.img\nfastboot flash vbmeta_system vbmeta_system_patched.img  #\u53ef\u9009\nfastboot reboot fastboot #\u5b89\u535310\u4e4b\u540e\u4f7f\u7528\u4e86\u52a8\u6001\u5206\u533a\uff0cvendor\u5206\u533a\u9700\u8981\u542f\u52a8\u5230fastbootd\u624d\u80fd\u5237\nfastboot flash vendor vendor.img\nfastboot reboot\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u6ce8\u610f\u4e8b\u9879\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u4e0a\u5237\u5b8c\u4e4b\u540e\uff0c\u5f88\u6709\u53ef\u80fd\u4f1a<strong>\u65e0\u6cd5\u5f00\u673a<\/strong>\uff0c\u56e0\u4e3a\u5f53vbmeta\/vbmeta_system\/vbmeta_vendor\u8fd93\u4e2a\u5206\u533a\u4efb\u4f55\u4e00\u4e2a\u4fee\u6539\u4e4b\u540e\uff0c\u90fd\u9700\u8981factory reset\u624d\u53ef\u4ee5\u6b63\u5e38\u542f\u52a8\uff0c\u8fd9\u4e00\u70b9\u548c\u89e3\u9501BL\u7684\u65f6\u5019\u4e00\u6837\uff0c\u6240\u4ee5\u5982\u679c\u78b0\u5230\u65e0\u6cd5\u5f00\u673a\u7684\u60c5\u51b5\uff0c\u5c31\u8fdb\u5165fastboot\u5c1d\u8bd5\u6e05\u9664userdata\u518d\u5c1d\u8bd5\u5f00\u673a\uff1a<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nfastboot -w\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u4e00\u5207\u987a\u5229\u7684\u8bdd\uff0c\u542f\u52a8\u4e4b\u540e\u5e94\u8be5\u5c31\u53ef\u4ee5\u770b\u523032\u4f4dzygote\u4e5f\u540c\u65f6\u5728\u8fd0\u884c\u4e86\uff0cgetporp\u67e5\u770b\u4e5f\u5e94\u8be5\u80fd\u770b\u5230abilist\u5df2\u7ecf\u4fee\u6539\uff0c\u6b64\u65f6\u5e94\u8be5\u53ef\u4ee5\u5b89\u88c532\u4f4dapk\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\npanther:\/ $ getprop | grep abi\n&#x5B;ro.product.cpu.abi]: &#x5B;arm64-v8a]\n&#x5B;ro.product.cpu.abilist]: &#x5B;arm64-v8a,armeabi-v7a,armeabi]\n&#x5B;ro.product.cpu.abilist32]: &#x5B;armeabi-v7a,armeabi]\n&#x5B;ro.product.cpu.abilist64]: &#x5B;arm64-v8a]\n&#x5B;ro.vendor.product.cpu.abilist]: &#x5B;arm64-v8a,armeabi-v7a,armeabi]\n&#x5B;ro.vendor.product.cpu.abilist32]: &#x5B;armeabi-v7a,armeabi]\n&#x5B;ro.vendor.product.cpu.abilist64]: &#x5B;arm64-v8a]\npanther:\/ $ ps -e | grep zygote\nroot           988     1 14859936 167616 0                  0 S zygote64\nroot          1092     1 1859028 142600 0                   0 S zygote\nwebview_zygote 2194  988 14793052 76512 0                   0 S webview_zygote\nu0_a171      22742   988 13865996 86540 0                   0 S com.android.chrome_zygote\npanther:\/ $\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u65b9\u6848\u4e8c\uff1a\u4f7f\u7528\u4fee\u6539\u8fc7\u7684Magisk\u5728\u7cfb\u7edf\u542f\u52a8\u8fc7\u7a0b\u4e2d\u4fee\u6539vendor\/build.prop<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u4e2a\u65b9\u6cd5\u9002\u5408\u4e8e\u5df2\u7ecf\u6709Magisk\u7684\u5c0f\u4f19\u4f34\u4f7f\u7528\uff0c\u66fe\u7ecf\u6211\u5c1d\u8bd5\u8fc7\u4f7f\u7528Magisk Module\u7684resetprop\u6765\u5728\u542f\u52a8\u9636\u6bb5\u4fee\u6539prop\uff0c\u4f46\u662f\u5931\u8d25\u4e86\uff0c\u9605\u8bfb\u4e86Magisk\u6e90\u7801\u540e\u53d1\u73b0\uff0cmagisk\u5728\u6ce8\u5165init\u8fdb\u7a0b\u540e\u624d\u4f1a\u52a0\u8f7dmodule\uff0c\u800cro.zygote\u8fd9\u5c5e\u6027\uff0c\u52a0\u8f7dmodule\u4e4b\u524d\u5c31\u5df2\u7ecf\u88abinit\u8fdb\u7a0b\u8bfb\u53d6\uff0c\u56e0\u6b64\u5728\u540e\u9762\u4fee\u6539\u5c31\u65e0\u6548\u4e86\uff0c\u6240\u4ee5\u552f\u4e00\u7684\u529e\u6cd5\u5c31\u662f\u4fee\u6539magisk\u672c\u8eab\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7ecf\u8fc7\u4e00\u4e9b\u63a2\u7d22\uff0c\u6700\u540e\u53d1\u73b0\u53ea\u9700\u8981\u4fee\u6539magisk\u6e90\u7801\u7684native\/jni\/init\/rootdir.cpp\u6587\u4ef6\u5373\u53ef\uff0c\u4ee5\u4e0b\u7ed9\u51fapatch<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n--- rootdir.cpp\t2022-11-13 19:25:15.462486225 +0800\n+++ rootdir_patch.cpp\t2022-11-13 19:24:28.287059699 +0800\n@@ -61,6 +61,62 @@\n     clone_attr(src, dest);\n }\n \n+\n+static void patch_pixel7_32bit_prop() {\n+\tbool isPixel7 = false;\n+\tif (access(&quot;\/vendor\/build.prop&quot;, F_OK) == 0) {\n+\t\txmkdirs(dirname(ROOTOVL &quot;\/vendor\/build.prop&quot;), 0755);\n+\t\tFILE *fprop = xfopen(ROOTOVL &quot;\/vendor\/build.new.prop&quot;, &quot;we&quot;);\n+\t\tif (!fprop) {\n+\t\t\tPLOGE(&quot;%s: open %s failed&quot;, __PRETTY_FUNCTION__, &quot;\/vendor\/build.prop&quot;);\n+\t\t\treturn;\n+\t\t}\n+\t\tfile_readline(&quot;\/vendor\/build.prop&quot;, &#x5B;&amp;](string_view line)mutable -&gt; bool{\n+\t\t\n+\t\t\tif (str_contains(line, &quot;Pixel 7&quot;)) {\n+\t\t\t\tisPixel7 = true;\n+\t\t\t}\n+\n+\t\t\tif (str_starts(line, &quot;ro.vendor.product.cpu.abilist=&quot;)) {\n+\t\t\t\tLOGD(&quot;Patch abilist\\n&quot;);\n+\t\t\t\tfprintf(fprop, &quot;ro.vendor.product.cpu.abilist=arm64-v8a,armeabi-v7a,armeabi\\n&quot;);\n+\t\t\t\treturn true;\n+\t\t\t}\n+\t\t\t\n+\t\t\tif (str_starts(line, &quot;ro.vendor.product.cpu.abilist32=&quot;)) {\n+\t\t\t\tLOGD(&quot;Patch abilist32\\n&quot;);\n+\t\t\t\tfprintf(fprop, &quot;ro.vendor.product.cpu.abilist32=armeabi-v7a,armeabi\\n&quot;);\n+\t\t\t\treturn true;\n+\t\t\t}\n+\t\t\t\n+\t\t\tif (str_starts(line, &quot;ro.zygote=zygote64&quot;)) {\n+\t\t\t\tLOGD(&quot;Patch zygote type\\n&quot;);\n+\t\t\t\tfprintf(fprop, &quot;ro.zygote=zygote64_32\\n&quot;);\n+\t\t\t\treturn true;\n+\t\t\t}\n+\t\t\t\/\/ Else just write the line\n+\t\t\tfprintf(fprop, &quot;%s&quot;, line.data());\n+\t\t\treturn true;\n+\t\t});\n+\n+\t\tfclose(fprop);\n+\t\t\n+\t\tif (isPixel7) {\n+\t\t\trename(ROOTOVL &quot;\/vendor\/build.new.prop&quot;, ROOTOVL &quot;\/vendor\/build.prop&quot;);\n+\t\t\tclone_attr(&quot;\/vendor\/build.prop&quot;, ROOTOVL &quot;\/vendor\/build.prop&quot;);\n+\t\t} else {\n+\t\t\tint origfile = xopen(&quot;\/vendor\/build.prop&quot;, O_RDONLY | O_CLOEXEC);\n+\t\t\tauto vendordata = mmap_data(&quot;\/vendor\/build.prop&quot;);\n+\t\t\tint outfile = xopen(ROOTOVL &quot;\/vendor\/build.prop&quot;, O_CREAT | O_WRONLY | O_CLOEXEC, 0);\n+\t\t\txwrite(outfile, vendordata.buf, vendordata.sz);\n+\t\t\tfclone_attr(origfile, outfile);\n+\t\t\tclose(origfile);\n+\t\t\tclose(outfile);\n+\t\t\tunlink(ROOTOVL &quot;\/vendor\/build.new.prop&quot;);\n+\t\t}\n+\t}\n+}\n+\n static void load_overlay_rc(const char *overlay) {\n     auto dir = open_dir(overlay);\n     if (!dir) return;\n@@ -237,6 +293,9 @@\n     } else {\n         patch_init_rc(&quot;\/init.rc&quot;, ROOTOVL &quot;\/init.rc&quot;, tmp_dir.data());\n     }\n+    \n+    \/\/ if it is Pixel 7 Enable 32bit support\n+    patch_pixel7_32bit_prop();\n \n     \/\/ Extract magisk\n     extract_files(false);\n@@ -301,6 +360,8 @@\n     if ((!treble &amp;&amp; access(&quot;\/sepolicy&quot;, F_OK) == 0) || !hijack_sepolicy()) {\n         patch_sepolicy(&quot;\/sepolicy&quot;, &quot;\/sepolicy&quot;);\n     }\n+    \n+    \n \n     chdir(&quot;\/&quot;);\n \n@@ -333,4 +394,3 @@\n     execv(&quot;\/sbin\/magisk&quot;, argv);\n     return 1;\n }\n-\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u5bf9\u4e8e\u4f38\u624b\u515a\u6765\u8bf4\uff0c\u53ef\u4ee5\u76f4\u63a5\u5230\u8fd9\u91cc\u4e0b\u8f7d\u7b14\u8005\u5df2\u7ecf\u7f16\u8bd1\u597d\u7684Magisk app\uff0c\u5bf9\u4e8e\u5df2\u7ecf\u5b89\u88c5\u8fc7Magisk\u7684\u5c0f\u4f19\u4f34\u6765\u8bf4\uff0c\u53ea\u9700\u8981\u5b89\u88c5\u8fd9\u4e2a\u65b0\u7684Magisk\u7136\u540e\u76f4\u63a5\u5728app\u4e2d\u91cd\u65b0\u70b9\u51fb\u5b89\u88c5\u5c31\u53ef\u4ee5\uff0c\u6216\u8005\u91cd\u65b0patch init_boot.img\u7136\u540e\u7528fastboot\u5237\u5165\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/ThomasKing2014\/Pixel7_32bit_helper\/blob\/main\/Magisk-v25.2_patched.apk?raw=true\">Magisk-v25.2_patched.apk<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f7f\u7528Magisk\u540c\u6837\u53ef\u4ee5\u8fbe\u5230\u76ee\u7684\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u603b\u7ed3<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Pixel 7\u53d6\u6d88\u638932\u4f4d\u5e94\u7528\u652f\u6301\u8bf4\u660e\u4e86Google\u7684\u6001\u5ea6\uff0c\u867d\u7136Pixel 7\u53ef\u4ee5\u901a\u8fc7\u4e00\u5b9a\u624b\u6bb5\u5f00\u542f\uff0c\u4f46\u662f\u53ef\u4ee5\u9884\u89c1\u5728\u660e\u5e74\uff0carmv9\u67b6\u6784\u7684\u82af\u7247\u5c06\u7269\u7406\u4e0d\u652f\u630132\u4f4d\u6307\u4ee4\u96c6\uff0c\u5230\u90a3\u65f6\u5019\u5c06\u5b8c\u5168\u4e0d\u53ef\u80fd\u652f\u6301\u3002\u56e0\u6b64\uff0c\u5efa\u8bae\u6240\u6709\u4ecd\u7136\u53ea\u7f16\u8bd132\u4f4d\u5e93\u7684app\u5c3d\u65e9\u8fc1\u79fb\u5230\u7eaf64\u4f4d\u7cfb\u7edf\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u9e23\u8c22<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u611f\u8c22ThomasKing\u5927\u4f6c\u63d0\u4f9b\u7684\u601d\u8def\uff1a<a href=\"https:\/\/github.com\/ThomasKing2014\/Pixel7_32bit_helper\">https:\/\/github.com\/ThomasKing2014\/Pixel7_32bit_helper<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5f88\u65e9\u5c31\u6709\u4f20\u95fb\uff0cPixel 7\u5c06\u4f1a\u662f\u7b2c\u4e00\u53f0\u7eaf64\u4f4dAndroid\u8bbe\u5907\uff0c\u4e0d\u80fd\u5b89\u88c5\u7eaf32\u4f4dapk\uff0c\u7b14\u8005\u4e5f\u62ff\u5230\u4e86\u4e00\u53f0\u7f8e [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[291],"tags":[296,293,298,295,299],"class_list":["post-1587","post","type-post","status-publish","format-standard","hentry","category-mobile-security","tag-296","tag-android","tag-magisk","tag-pixel-7","tag-vendor"],"_links":{"self":[{"href":"https:\/\/www.jarvisw.com\/index.php?rest_route=\/wp\/v2\/posts\/1587","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jarvisw.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jarvisw.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jarvisw.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jarvisw.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1587"}],"version-history":[{"count":10,"href":"https:\/\/www.jarvisw.com\/index.php?rest_route=\/wp\/v2\/posts\/1587\/revisions"}],"predecessor-version":[{"id":1602,"href":"https:\/\/www.jarvisw.com\/index.php?rest_route=\/wp\/v2\/posts\/1587\/revisions\/1602"}],"wp:attachment":[{"href":"https:\/\/www.jarvisw.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1587"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jarvisw.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1587"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jarvisw.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1587"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}