啟動和停止init.rc中的服務


實例演示

關閉和啟動init.rc中的console 服務

service console /system/bin/sh
    class core
    console
    disabled
    user shell
    group log

 

 

 

代碼實現

shell :

setprop ctl.start service_name

setprop ctl.stop service_name

JNI:

property_set("ctl.start", service_name);

property_set("ctl.stop", service_name);

 code位置:

system\core\init\Property_service.cpp

uint32_t HandlePropertySet(const std::string& name, const std::string& value,
                           const std::string& source_context, const ucred& cr, std::string* error) {
    if (auto ret = CheckPermissions(name, value, source_context, cr, error); ret != PROP_SUCCESS) {
        return ret;
    }
    if (StartsWith(name, "ctl.")) {
        HandleControlMessage(name.c_str() + 4, value, cr.pid);
        return PROP_SUCCESS;
    }

 

權限

uid == AID_SYSTEM || uid == AID_ROOT

參見 system/core/init/property_service.c中check_control_perms函數

 


原文鏈接:https://blog.csdn.net/aeolia_zhang/article/details/20126031


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM