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

网站开发前景好吗什么是网站空间信息

网站开发前景好吗,什么是网站空间信息,查找人网站 优帮云,怎么在赶集网上做招聘网站背景 由于项目#xff08;MTK平台#xff09;上要实现userroot的版本#xff0c;供特殊用户使用。Android T上的方案无效#xff0c;经历了各种搜索查看资料#xff0c;和bsp大佬一起通宵奋战#xff0c;整出了方案。梳理记录下#xff0c;有需要的同学可以参考。 Root… 背景 由于项目MTK平台上要实现userroot的版本供特殊用户使用。Android T上的方案无效经历了各种搜索查看资料和bsp大佬一起通宵奋战整出了方案。梳理记录下有需要的同学可以参考。 Root代码实现原理 系统判断是否有root权限的地方在system/packages/modules/adb/daemon/main.cpp里面 should_drop_privileges()函数返回false表明可以root。 auth_required 是否需要adb鉴权adb弹框确认false时默认授权adb鉴权权限不需要弹框确认。 userdebug 版本可以root是因为ro.secure 0,代码路径build/core/main.mk 在should_drop_privileges()里面有判断 else # !user_variant# Turn on checkjni for non-user builds.ADDITIONAL_SYSTEM_PROPERTIES ro.kernel.android.checkjni1# Set device insecure for non-user builds.ADDITIONAL_SYSTEM_PROPERTIES ro.secure0 static bool should_drop_privileges() {// The properties that affect adb root and adb unroot are ro.secure and// ro.debuggable. In this context the names dont make the expected behavior// particularly obvious.//// ro.debuggable:// Allowed to become root, but not necessarily the default. Set to 1 on// eng and userdebug builds.//// ro.secure:// Drop privileges by default. Set to 1 on userdebug and user builds.bool ro_secure android::base::GetBoolProperty(ro.secure, true);bool ro_debuggable __android_log_is_debuggable();// Drop privileges if ro.secure is set...bool drop ro_secure;// ... except adb root lets you keep privileges in a debuggable build.std::string prop android::base::GetProperty(service.adb.root, );bool adb_root (prop 1);bool adb_unroot (prop 0);if (ro_debuggable adb_root) {drop false;}// ... and adb unroot lets you explicitly drop privileges.if (adb_unroot) {drop true;}return drop; } 实现中遇到的问题 1selinux问题主要解决问题 2缺少su 和remount执行的bin文件 具体实现方案和步骤 1特殊版本标识CUSTOM_ROOT_VERSIONyes编译版本时需要export下该环境变量 2添加flag路径build/core/soong_config.mk --- a/core/soong_config.mkb/core/soong_config.mk-58,6 58,9 $(call add_json_bool, Debuggable, $(filter userdebug eng,$(TARGET_BUILD_VARIANT)))$(call add_json_bool, Eng, $(filter eng,$(TARGET_BUILD_VARIANT))) $(call add_json_bool, ROOTVersion, $(filter yes,$(CUSTOM_ROOT_VERSION)))$(call add_json_str, DeviceName, $(TARGET_DEVICE)) 3),添加root版本的数据声明设置root相关的flag需要 --- a/android/variable.gob/android/variable.go-151,6 151,14 }} ROOTVersion struct {Cflags []stringCppflags []stringInit_rc []string}Pdk struct {Enabled *bool android:arch_variant} android:arch_variant-315,6 323,9 UseRBED8 *bool json:,omitemptyDebuggable *bool json:,omitemptyEng *bool json:,omitemptyROOTVersion *bool json:,omitemptyTreble_linker_namespaces *bool json:,omitempty 4),添加su 和 remount 模块在产品的mk文件中添加 PRODUCT_PACKAGES remount PRODUCT_PACKAGES su 5)在文件系统模块fs_mgr中添加ROOTVersion相应的flagproperty_service中设置ro.secure和ro.debuggable的值 --- a/fs_mgr/Android.bpb/fs_mgr/Android.bp-118,6 118,14 -DALLOW_ADBD_DISABLE_VERITY1,],},ROOTVersion: {cppflags: [-UALLOW_ADBD_DISABLE_VERITY,-DALLOW_ADBD_DISABLE_VERITY1,],},},header_libs: [libfiemap_headers,-248,6 256,17 clean_scratch_files.rc,],},ROOTVersion: {cppflags: [-UALLOW_ADBD_DISABLE_VERITY,-DALLOW_ADBD_DISABLE_VERITY1,],init_rc: [clean_scratch_files.rc,],},},symlinks: [clean_scratch_files,--- a/init/Android.bpb/init/Android.bp-149,6 149,13 -DSHUTDOWN_ZERO_TIMEOUT1,],},ROOTVersion: {cppflags: [-DROOT_VERSION,],},uml: {cppflags: [-DUSER_MODE_LINUX],},--- a/init/property_service.cppb/init/property_service.cpp-1328,6 1328,19 }} bool adbAuthorized false; #ifdef ROOT_VERSIONadbAuthorized true; #endifif (adbAuthorized) {InitPropertySet(ro.adb.secure, 0);InitPropertySet(ro.debuggable, 1);} for (const auto [name, value] : properties) { 6adb模块添加权限的判断和5中设置属性的值有重复此处是为了确保生效。有时间的同学可以验证下去掉这一步看是否生效。 should_drop_privileges()函数最后添加 #ifdef CUSTON_ROOT_VERSIONreturn false; #endif drop_privileges()函数最后添加 #ifdef CUSTON_ROOT_VERSIONauth_requiredfalse; #endif 7),最重要的一步更换sepolicy文件为debug版本的 (1)添加sepolicysrc文件是debug版本的修改路径system/sepolicy/android.bp --- a/Android.bpb/Android.bp},}se_policy_cil {name: userdebug_plat_sepolicy_debug.cil,src: :userdebug_plat_sepolicy.conf,additional_cil_files: [:sepolicy_technical_debt{.plat_private}],dist: {targets: [droidcore],}, } // A copy of the userdebug_plat_policy in GSI. (2),同路径下mk文件加入编译 --- a/Android.mkb/Android.mkLOCAL_REQUIRED_MODULES \userdebug_plat_sepolicy.cil \ifeq ($(strip $(CUSTOM_ROOT_VERSION)),yes) LOCAL_REQUIRED_MODULES \userdebug_plat_sepolicy_root.cil endif (3)代码中加载sepolicy地方GetUserdebugPlatformPolicyFile()也使用上面生成的sepolicy文件代码路径system/core/init/selinux.cpp std::optionalconst char* GetUserdebugPlatformPolicyFile() { #ifdef DF_VERSIONreturn /system/etc/selinux/userdebug_plat_sepolicy_root.cil; #endif 至此Android U版本userrootremount方案修改完成。
http://www.dnsts.com.cn/news/75936.html

相关文章:

  • vs 2017c 怎么建设网站苏州网站设计公司济南兴田德润厉害吗
  • 北京蓝杉网站建设公司为什么我的网站备案通过还是显示未备案
  • 虚拟主机和网站的关系如何建立互联网公司网站
  • 福州网络公司网站做网站 广州
  • html怎么做网站设计图片类的wordpress
  • 泉州市建设局网站公示国外html5网站建设研究现状
  • wordpress网站logo宣传册制作网站
  • 简历模板免费网站做企业网站步骤
  • 韩语网站建设注意事项私人承包小工程哪里有
  • 吕梁建站公司自己设计app
  • 怎么去做一个网站网站建设8万属于资产吗
  • 郑州网站设计专家金山石化网站建设
  • 平顶山市湛河区建设局网站宁波网络公司招聘信息
  • 汨罗做网站安徽工程建设发展有限公司
  • 如何做文化传播公司网站网页设计代码html文件怎么查
  • 营销型网站建设应该注意什么购买域名的网站
  • 服装电子商务网站有哪些网站开发培训教程
  • 安全的网站建设服务叫别人做网站安全吗
  • 网站设计风格怎么写wordpress多用户模板
  • wordpress 文章长度上海网站优化上
  • 手机网站html声明网站网页怎么设计
  • iapp如何用网站做软件商城服务是什么软件
  • 如何查网站的icp备案企业官网框架
  • 江苏河海建设有限公司官方网站什么样的网站必须做备案
  • 官网站超链接怎么做泰安网站建设有哪些
  • 简单网站建设流程图长宁免费网站制作
  • 网站开发流程的意义小程序商店大全
  • 加强网站网络安全建设方案小程序自己制作流程
  • 欧美电影免费网站佛山网站建设工作室
  • 天津北京网站建设一个新网站要怎么优化