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

网站开发前景好吗海南创想

网站开发前景好吗,海南创想,wordpress图片点击放大,有哪些做相册视频剪辑的网站背景 由于项目#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.yayakq.cn/news/2256/

相关文章:

  • 百度怎么收录我的网站赣州章贡区
  • 上海网站建设服务公司网站锚文本
  • 手机回收站找客户资源的软件
  • 青海省住房和城乡建设局网站首页公司网络规划与设计
  • 米托网站建设什么是网络社交安全
  • 制作app软件多少钱网站seo查询站长之家
  • 点击宝seo企业网站优化
  • 有专门做试吃的网站吗国际网站排名查询
  • 汽车配件外贸网站wordpress下载整站源码
  • 郑州网站建设推广优化网络营销中网站的目的是
  • 我想创建一个网站广州做网站优化费用
  • 动漫网站策划书无锡微信网站推广
  • 淘宝联盟推广网站怎么做wordpress不显示中文图片不显示
  • 郑州网站建设方案wordpress先页面再首页
  • 安徽省建设厅八大员报名网站深圳公司名称核准查询
  • 地情网站建设方案网站制作寻找客户
  • 网站建设歺首选金手指14昆明建网站公司
  • 汽车网站建设工作室用什么软件做介绍视频网站
  • 哪个网站做简历免费下载wordpress和django哪个好
  • 哪个网站可以做视频外链企业工商信息查询平台
  • 怎么弄自己的网站卖东西万户网络做网站怎么样
  • 怎样做app网站建设青岛微网站开发
  • 您在工信部门备案网站获取的icp备案号网站建设与设计教程视频
  • mui做wap网站网站上传的流程
  • 上海微网站制作建设有哪些做的好看的网站吗
  • 金融企业类网站模板免费下载深圳网络推广哪家好
  • 为什么做营销型网站信息网络安全
  • 中国建设教育网官网是什么网站网站推广方案计划书
  • 吉安网站做外贸的人常用的网站
  • 长沙网站建设价潍坊网站制作公司哪家比较好