当前位置: 首页 > news >正文

如何建立搜索功能的网站九江哪里做网站

如何建立搜索功能的网站,九江哪里做网站,外贸用什么软件,合肥网站建设哪家好价格问题 Android 9、11往vendor.img增加文件#xff0c;烧写到设备后发现增加的可执行文件没有执行权限。经过漫长查找#xff0c;终于找到了问题的根源#xff0c;谨以此篇献给哪些脚踏实地的人们。 根本原因 system/core/libcutils/fs_config.cpp文件#xff0c;fs_confi…问题 Android 9、11往vendor.img增加文件烧写到设备后发现增加的可执行文件没有执行权限。经过漫长查找终于找到了问题的根源谨以此篇献给哪些脚踏实地的人们。 根本原因 system/core/libcutils/fs_config.cpp文件fs_config函数根据android_dirs、android_files中的配置修改文件的uid、gui、mode(权限)。除了/vendor/bin/、/vendor/xbin/目录下的文件的有执行权限/vendor目录下的其他文件都没有执行权限。 vendor.img是如何生成的 build/core/Makefile INSTALLED_VENDORIMAGE_TARGET  3314 # We just build this directly to the install location. 3315 INSTALLED_VENDORIMAGE_TARGET : $(BUILT_VENDORIMAGE_TARGET) 3316 $(INSTALLED_VENDORIMAGE_TARGET): \ 3317 $(INTERNAL_USERIMAGES_DEPS) \ 3318 $(INTERNAL_VENDORIMAGE_FILES) \ 3319 $(INSTALLED_FILES_FILE_VENDOR) \ 3320 $(RECOVERY_FROM_BOOT_PATCH) 3321 $(build-vendorimage-target) build-vendorimage-target BUILT_VENDORIMAGE_TARGET 3294 vendorimage_intermediates : \ 3295 $(call intermediates-dir-for,PACKAGING,vendor) 3296 BUILT_VENDORIMAGE_TARGET : $(PRODUCT_OUT)/vendor.img 3297 define build-vendorimage-target 3298 # $(hide) /usr/bin/python build/tools/rcmerge.py $(subst full_,,$(TARGET_PRODUCT)) vnd 3299 $(call pretty,Target vendor fs image: $(INSTALLED_VENDORIMAGE_TARGET)) 3300 mkdir -p $(TARGET_OUT_VENDOR) 3301 rm -rf $(TARGET_OUT_VENDOR)/avm 3302 mkdir -p $(TARGET_OUT_VENDOR)/avm 3303 $(call create-vendor-odm-symlink) 3304 mkdir -p $(vendorimage_intermediates) rm -rf $(vendorimage_intermediates)/vendor_image_info.txt 3305 $(hide) cp -rf $(TOP)/vendor/autochips/proprietary/frameworks/base/avm/file/* $(TARGET_OUT_VENDOR)/avm 3306 $(call generate-image-prop-dictionary, $(vendorimage_intermediates)/vendor_image_info.txt,vendor,skip_fscktrue) 3307 PATH$(INTERNAL_USERIMAGES_BINARY_PATHS):$$PATH \ 3308 $(BUILD_IMAGE) \ 3309 $(TARGET_OUT_VENDOR) $(vendorimage_intermediates)/vendor_image_info.txt \ 3310 $(INSTALLED_VENDORIMAGE_TARGET) $(TARGET_OUT) 3311 $(call assert-max-image-size,$(INSTALLED_VENDORIMAGE_TARGET) $(RECOVERY_FROM_BOOT_PATCH),$(BOARD_VENDORIMAGE_PARTITION_SIZE)) 3312 endef build_image build/core/config.mk 635 BUILD_IMAGE : $(HOST_OUT_EXECUTABLES)/build_image$(HOST_EXECUTABLE_SUFFIX) out/host/linux-x86/bin/build_image Builds output_image from the given input_directory, properties_file, and writes the image to target_output_directory.Usage: build_image input_directory properties_file output_image \target_output_directorybuild_image.py build/tools/releasetools/build_image.py BuildImageMkfs 231 def BuildImageMkfs(in_dir, prop_dict, out_file, target_out, fs_config): 232 Builds a pure image for the files under in_dir and writes it to out_file. 233 234 Args: 235 in_dir: Path to input directory. 236 prop_dict: A property dict that contains info like partition size. Values 237 will be updated with computed values. 238 out_file: The output image file. 239 target_out: Path to the TARGET_OUT directory as in Makefile. It actually 240 points to the /system directory under PRODUCT_OUT. fs_config (the one 241 under system/core/libcutils) reads device specific FS config files from 242 there. 243 fs_config: The fs_config file that drives the prototype 244 245 Raises: 246 BuildImageError: On build image failures. 247 build_command mkuserimg_mke2fs -s out/target/product/ac8257_64bit/vendor out/target/product/ac8257_64bit/vendor.img ext4 vendor 825540608 -j 0 -D out/target/product/ac8257_64bit/system -L vendor -M 0 --inode_size 256  out/target/product/ac8257_64bit/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin mkuserimg_mke2fs.py system/extras/ext4_utils/mkuserimg_mke2fs.py mke2fs Usage: mke2fs [-c|-l filename] [-b block-size] [-C cluster-size][-i bytes-per-inode] [-I inode-size] [-J journal-options][-G flex-group-size] [-N number-of-inodes] [-d root-directory][-m reserved-blocks-percentage] [-o creator-os][-g blocks-per-group] [-L volume-label] [-M last-mounted-directory][-O feature[,...]] [-r fs-revision] [-E extended-option[,...]][-t fs-type] [-T usage-type ] [-U UUID] [-e errors_behavior][-z undo_file][-jnqvDFSV] device [blocks-count] MKE2FS_CONFIGout/soong/.temp/tmpGyRCz5mke2fs -O ^has_journal -L vendor -I 256  -M /vendor -m 0 -E android_sparse -t ext4 -b 4096 out/target/product/ac8257_64bit/vendor.img 201548 e2fsdroid e2fsdroid -p out/target/product/ac8257_64bit/system -S out/target/product/ac8257_64bit/obj/ETC/file_contexts.bin_intermediates/file_contexts.bin -f out/target/product/ac8257_64bit/vendor -a /vendor out/target/product/ac8257_64bit/vendor.img file_contexts obj/ETC/file_contexts.bin_intermediates system/sepolicy/private/file_contexts device/autochips/sepolicy/basic/plat_private/file_contexts device/autochips/sepolicy/bsp/plat_private/file_contexts SetUpInDirAndFsConfig e2fsdroid源在何处 external/e2fsprogs/contrib/android/e2fsdroid.c  Usage e2fsdroid [-B block_list] [-D basefs_out] [-T timestamp][-C fs_config] [-S file_contexts] [-p product_out][-a mountpoint] [-d basefs_in] [-f src_dir] [-e] [-s] image android_configure_fs 326 errcode_t android_configure_fs(ext2_filsys fs, char *src_dir, char *target_out, 327 char *mountpoint, 328 struct selinux_opt *seopts EXT2FS_ATTR((unused)), 329 unsigned int nopt EXT2FS_ATTR((unused)), 330 char *fs_config_file, time_t fixed_time, 331 const struct ugid_map* uid_map, 332 const struct ugid_map* gid_map) 333 {359 /* Load the FS config */ 360 if (fs_config_file) { 361 retval load_canned_fs_config(fs_config_file); 362 if (retval 0) { 363 com_err(__func__, retval, 364 _(while loading fs_config \%s\), 365 fs_config_file); 366 return retval; 367 } 368 fs_config_func canned_fs_config; 369 } else if (mountpoint) 370 fs_config_func fs_config; 371 372 return __android_configure_fs(fs, src_dir, target_out, mountpoint, 373 fs_config_func, sehnd, fixed_time, 374 uid_map, gid_map); 375 }fs_config system/core/libcutils/fs_config.cpp文件fs_config函数根据android_dirs、android_files中的配置修改文件的uid、gui、mode(权限)。除了/vendor/bin/、/vendor/xbin/目录下的文件的有执行权限/vendor目录下的其他文件都没有执行权限。 366 for (pc dir ? android_dirs : android_files; pc-prefix; pc) { 367 if (fs_config_cmp(dir, pc-prefix, strlen(pc-prefix), path, plen)) { 368 break; 369 } 370 } 371 *uid pc-uid; 372 *gid pc-gid; 373 *mode (*mode (~07777)) | pc-mode; 374 *capabilities pc-capabilities; 375 }android_dirs 59 static const struct fs_path_config android_dirs[] {60 // clang-format off61 { 00770, AID_SYSTEM, AID_CACHE, 0, cache },62 { 00555, AID_ROOT, AID_ROOT, 0, config },63 { 00771, AID_SYSTEM, AID_SYSTEM, 0, data/app },64 { 00771, AID_SYSTEM, AID_SYSTEM, 0, data/app-private },65 { 00771, AID_SYSTEM, AID_SYSTEM, 0, data/app-ephemeral },66 { 00771, AID_ROOT, AID_ROOT, 0, data/dalvik-cache },67 { 00771, AID_SYSTEM, AID_SYSTEM, 0, data/data },68 { 00771, AID_SHELL, AID_SHELL, 0, data/local/tmp },69 { 00771, AID_SHELL, AID_SHELL, 0, data/local },70 { 00770, AID_DHCP, AID_DHCP, 0, data/misc/dhcp },71 { 00771, AID_SHARED_RELRO, AID_SHARED_RELRO, 0, data/misc/shared_relro },72 { 01771, AID_SYSTEM, AID_MISC, 0, data/misc },73 { 00775, AID_MEDIA_RW, AID_MEDIA_RW, 0, data/media/Music },74 { 00775, AID_MEDIA_RW, AID_MEDIA_RW, 0, data/media },75 { 00750, AID_ROOT, AID_SHELL, 0, data/nativetest },76 { 00750, AID_ROOT, AID_SHELL, 0, data/nativetest64 },77 { 00750, AID_ROOT, AID_SHELL, 0, data/benchmarktest },78 { 00750, AID_ROOT, AID_SHELL, 0, data/benchmarktest64 },79 { 00775, AID_ROOT, AID_ROOT, 0, data/preloads },80 { 00771, AID_SYSTEM, AID_SYSTEM, 0, data },81 { 00755, AID_ROOT, AID_SYSTEM, 0, mnt },82 { 00751, AID_ROOT, AID_SHELL, 0, product/bin },83 { 00777, AID_ROOT, AID_ROOT, 0, sdcard },84 { 00751, AID_ROOT, AID_SDCARD_R, 0, storage },85 { 00751, AID_ROOT, AID_SHELL, 0, system/bin },86 { 00755, AID_ROOT, AID_ROOT, 0, system/etc/ppp },87 { 00755, AID_ROOT, AID_SHELL, 0, system/vendor },88 { 00751, AID_ROOT, AID_SHELL, 0, system/xbin },89 { 00751, AID_ROOT, AID_SHELL, 0, system/apex/*/bin },90 { 00751, AID_ROOT, AID_SHELL, 0, system_ext/bin },91 { 00751, AID_ROOT, AID_SHELL, 0, system_ext/apex/*/bin },92 { 00751, AID_ROOT, AID_SHELL, 0, vendor/bin },93 { 00755, AID_ROOT, AID_SHELL, 0, vendor },94 { 00755, AID_ROOT, AID_ROOT, 0, 0 },95 // clang-format on96 }; android_files 139 static const struct fs_path_config android_files[] { 140 // clang-format off 141 { 00644, AID_SYSTEM, AID_SYSTEM, 0, data/app/* }, 142 { 00644, AID_SYSTEM, AID_SYSTEM, 0, data/app-ephemeral/* }, 143 { 00644, AID_SYSTEM, AID_SYSTEM, 0, data/app-private/* }, 144 { 00644, AID_APP, AID_APP, 0, data/data/* }, 145 { 00644, AID_MEDIA_RW, AID_MEDIA_RW, 0, data/media/* }, 146 { 00640, AID_ROOT, AID_SHELL, 0, data/nativetest/tests.txt }, 147 { 00640, AID_ROOT, AID_SHELL, 0, data/nativetest64/tests.txt }, 148 { 00750, AID_ROOT, AID_SHELL, 0, data/nativetest/* }, 149 { 00750, AID_ROOT, AID_SHELL, 0, data/nativetest64/* }, 150 { 00750, AID_ROOT, AID_SHELL, 0, data/benchmarktest/* }, 151 { 00750, AID_ROOT, AID_SHELL, 0, data/benchmarktest64/* }, 152 { 00600, AID_ROOT, AID_ROOT, 0, default.prop }, // legacy 153 { 00600, AID_ROOT, AID_ROOT, 0, system/etc/prop.default }, 154 { 00600, AID_ROOT, AID_ROOT, 0, odm/build.prop }, // legacy; only for P release 155 { 00600, AID_ROOT, AID_ROOT, 0, odm/default.prop }, // legacy; only for P release 156 { 00600, AID_ROOT, AID_ROOT, 0, odm/etc/build.prop }, 157 { 00444, AID_ROOT, AID_ROOT, 0, odm_conf_dir 1 }, 158 { 00444, AID_ROOT, AID_ROOT, 0, odm_conf_file 1 }, 159 { 00444, AID_ROOT, AID_ROOT, 0, oem_conf_dir 1 }, 160 { 00444, AID_ROOT, AID_ROOT, 0, oem_conf_file 1 }, 161 { 00600, AID_ROOT, AID_ROOT, 0, product/build.prop }, 162 { 00444, AID_ROOT, AID_ROOT, 0, product_conf_dir 1 }, 163 { 00444, AID_ROOT, AID_ROOT, 0, product_conf_file 1 }, 164 { 00600, AID_ROOT, AID_ROOT, 0, system_ext/build.prop }, 165 { 00444, AID_ROOT, AID_ROOT, 0, system_ext_conf_dir 1 }, 166 { 00444, AID_ROOT, AID_ROOT, 0, system_ext_conf_file 1 }, 167 { 00755, AID_ROOT, AID_SHELL, 0, system/bin/crash_dump32 }, 168 { 00755, AID_ROOT, AID_SHELL, 0, system/bin/crash_dump64 }, 169 { 00755, AID_ROOT, AID_SHELL, 0, system/bin/debuggerd }, 170 { 00550, AID_LOGD, AID_LOGD, 0, system/bin/logd }, 171 { 00700, AID_ROOT, AID_ROOT, 0, system/bin/secilc }, 172 { 00750, AID_ROOT, AID_ROOT, 0, system/bin/uncrypt }, 173 { 00600, AID_ROOT, AID_ROOT, 0, system/build.prop }, 174 { 00444, AID_ROOT, AID_ROOT, 0, sys_conf_dir 1 }, 175 { 00444, AID_ROOT, AID_ROOT, 0, sys_conf_file 1 }, 176 { 00440, AID_ROOT, AID_SHELL, 0, system/etc/init.goldfish.rc }, 177 { 00550, AID_ROOT, AID_SHELL, 0, system/etc/init.goldfish.sh }, 178 { 00550, AID_ROOT, AID_SHELL, 0, system/etc/init.ril }, 179 { 00555, AID_ROOT, AID_ROOT, 0, system/etc/ppp/* }, 180 { 00555, AID_ROOT, AID_ROOT, 0, system/etc/rc.* }, 181 { 00750, AID_ROOT, AID_ROOT, 0, vendor/bin/install-recovery.sh }, 182 { 00600, AID_ROOT, AID_ROOT, 0, vendor/build.prop }, 183 { 00600, AID_ROOT, AID_ROOT, 0, vendor/default.prop }, 184 { 00440, AID_ROOT, AID_ROOT, 0, vendor/etc/recovery.img }, 185 { 00444, AID_ROOT, AID_ROOT, 0, ven_conf_dir 1 }, 186 { 00444, AID_ROOT, AID_ROOT, 0, ven_conf_file 1 }, 187 188 // the following two files are INTENTIONALLY set-uid, but they 189 // are NOT included on user builds. 190 { 06755, AID_ROOT, AID_ROOT, 0, system/xbin/procmem }, 191 { 04750, AID_ROOT, AID_SHELL, 0, system/xbin/su }, 192 193 // the following files have enhanced capabilities and ARE included 194 // in user builds. 195 { 00700, AID_SYSTEM, AID_SHELL, CAP_MASK_LONG(CAP_BLOCK_SUSPEND), 196 system/bin/inputflinger }, 197 { 00750, AID_ROOT, AID_SHELL, CAP_MASK_LONG(CAP_SETUID) | 198 CAP_MASK_LONG(CAP_SETGID), 199 system/bin/run-as }, 200 { 00750, AID_ROOT, AID_SHELL, CAP_MASK_LONG(CAP_SETUID) | 201 CAP_MASK_LONG(CAP_SETGID), 202 system/bin/simpleperf_app_runner }, 203 { 00755, AID_ROOT, AID_ROOT, 0, first_stage_ramdisk/system/bin/e2fsck }, 204 { 00755, AID_ROOT, AID_ROOT, 0, first_stage_ramdisk/system/bin/tune2fs }, 205 { 00755, AID_ROOT, AID_ROOT, 0, first_stage_ramdisk/system/bin/resize2fs }, 206 // generic defaults 207 { 00755, AID_ROOT, AID_ROOT, 0, bin/* }, 208 { 00640, AID_ROOT, AID_SHELL, 0, fstab.* }, 209 { 00750, AID_ROOT, AID_SHELL, 0, init* }, 210 { 00755, AID_ROOT, AID_SHELL, 0, odm/bin/* }, 211 { 00755, AID_ROOT, AID_SHELL, 0, product/bin/* }, 212 { 00755, AID_ROOT, AID_SHELL, 0, system/bin/* }, 213 { 00755, AID_ROOT, AID_SHELL, 0, system/xbin/* }, 214 { 00755, AID_ROOT, AID_SHELL, 0, system/apex/*/bin/* }, 215 { 00755, AID_ROOT, AID_SHELL, 0, system_ext/bin/* }, 216 { 00755, AID_ROOT, AID_SHELL, 0, system_ext/apex/*/bin/* }, 217 { 00755, AID_ROOT, AID_SHELL, 0, vendor/bin/* }, 218 { 00755, AID_ROOT, AID_SHELL, 0, vendor/xbin/* }, 219 { 00771, AID_ROOT, AID_SYSTEM, 0, avm/* }, 220 { 00644, AID_ROOT, AID_ROOT, 0, 0 }, 221 // clang-format on 222 }; 如何调试 build_image.py build/core --- a/tools/releasetools/build_image.pyb/tools/releasetools/build_image.py-341,8 341,12 def BuildImageMkfs(in_dir, prop_dict, out_file, target_out, fs_config):raise BuildImageError(Error: unknown filesystem type: {}.format(fs_type)) if vendor prop_dict[mount_point]:print(build_command: %s % (build_command))try:mkfs_output common.RunAndCheckOutput(build_command)if vendor prop_dict[mount_point]:print(mkfs_output: %s % mkfs_output)except:try:du GetDiskUsage(in_dir) mkuserimg_mke2fs.py system/extras --- a/ext4_utils/mkuserimg_mke2fs.pyb/ext4_utils/mkuserimg_mke2fs.py-223,6 223,7 def main(argv):if args.timestamp:mke2fs_env[E2FSPROGS_FAKE_TIME] args.timestamp print(mke2fs_cmd: %s, mke2fs_env: %s\n % (mke2fs_cmd, mke2fs_env))output, ret RunCommand(mke2fs_cmd, mke2fs_env)print(output)if ret ! 0:-234,6 235,7 def main(argv):if args.timestamp:e2fsdroid_env[E2FSPROGS_FAKE_TIME] args.timestamp print(e2fsdroid_cmd: %s, e2fsdroid_env: %s\n % (e2fsdroid_cmd, e2fsdroid_env))output, ret RunCommand(e2fsdroid_cmd, e2fsdroid_env)# The build script is parsing the raw output of e2fsdroid; keep the pattern# unchanged for now. fs_config.cpp system/core --- a/libcutils/fs_config.cppb/libcutils/fs_config.cpp-367,6 367,7 void fs_config(const char* path, int dir, const char* target_out_path, unsigned*break;}}printf(%s %s, prefix: %s %o\n, path, target_out_path, pc-prefix, pc-mode);*uid pc-uid;*gid pc-gid;*mode (*mode (~07777)) | pc-mode;
http://www.hkea.cn/news/14447813/

相关文章:

  • 做智能网站软件电商网站开发实训软件
  • 福州企业网站wordpress授权怎么破解
  • 网站备份信息mv网站建设
  • 运营企业网站高端网站开发
  • 太原市建设工程安全监督站网站顺德做网站推广哪家好
  • 设计友好的网站成都cms建站
  • 企业网站建设可行性分析表网页编辑软件 破解版
  • 临沂网站建设对实体企业爱是做的电影网站吗
  • 咸阳兼职做网站免费奖励代码网站
  • 沅江市住房和建设局网站网站建设门户
  • 重庆招聘网站建设虚拟主机怎么搭建网站
  • 中小企业官方网站杭州网站建设设计
  • 买公司 网站建设对于一个确定的网和设计方案
  • 山西国人伟业网站多用户购物商城
  • 做实验室信息的网站国外html响应式网站
  • 晋中品牌网站建设建设自助建站工具软件
  • 自媒体平台排名前十网站性能优化方法
  • 沈阳网站建设管理茂名专业做网站
  • 搭建网站框架数据库与网站建设的关系
  • 被墙的网站有哪些企业网站分析报告
  • wordpress抓取别人网站网站开发需求文件
  • 常州网站建设制作视频点播网站建设
  • 支付网站备案wordpress电影主题公园
  • 行业网站如何推广专业建设网站哪个好
  • 网站如果实现微信支付官网招聘和招聘网站
  • 广州建网站维护公司网页设计作业压缩包
  • wordpress网站分析成都网站seo诊断
  • 湖南网站推广多少钱Wordpress插件开发中文字幕
  • 专门做课件的网站网站建设修改
  • 网站 信用卡支付接口成都的设计院有哪些