Hi, all.

I have one question about the chown() service call.

In the ensure_config_file_exists() function of wifi.c,
this function is called from the "system_server" processor.
The "system_server" process has 1000(system) uid and 1000(system) gid.
As far as I know, to change the ownership of the file, the processor
should have a root permission.
But the "system_server" has no root permission.
So, in my case, the below logs are displayed always.
How can I resolve it?

BR,
nus

[  135.220000] init: event { 'add', '/module/bcm4325', 'module', '',
-1, -1 }
[  135.240000] Linux Kernel SDIO/MMC Driver
[  135.240000] bus: 'sdio': add driver bcmsdh_sdmmc
[  135.240000] sdio_bus_match: return 1
[  135.250000] sdio_bus_probe: sdio_match_device() return 0xbf01ab2c
[  135.260000] sdio_bus_match: return 1
[  135.260000] sdio_bus_probe: sdio_match_device() return 0xbf01ab2c
D/SettingsWifiEnabler(  742): Received wifi state changed from
Disabled to Enabling
[  135.310000] DHD: dongle ram size is set to 393216(orig 393216)
[  135.930000] init: event { 'add', '/devices/virtual/net/eth1',
'net', '', -1, -1 }
[  135.930000] eth1: Broadcom Dongle Host Driver mac=00:22:58:20:80:02
[  136.020000] init: event { 'add', '/bus/sdio/drivers/bcmsdh_sdmmc',
'drivers', '', -1, -1 }
[  136.020000]
[  136.020000] Dongle Host Driver, version 4.218.223.0
D/WifiHW  (  555): ===========(+) wifi_start_supplicant()
D/WifiHW  (  555): ensure_config_file_exists : system_server,
gid=1000, uid=1000
E/WifiHW  (  555): Error changing group ownership of /data/misc/wifi/
bcm_supp.conf to 1010: Operation not permitted
E/WifiHW  (  555): Wi-Fi will not be enabled
D/WifiHW  (  555): ===========wifi_unload_driver()
[  137.310000] init: event { 'remove', '/bus/sdio/drivers/
bcmsdh_sdmmc', 'drivers', '', -1, -1 }
[  137.310000] init: event { 'remove', '/module/bcm4325', 'module',
'', -1, -1 }
E/WifiService(  555): Failed to start supplicant daemon.
D/SettingsWifiEnabler(  742): Received wifi state changed from
Enabling to Unknown


==== ensure_config_file_exists() in the wifi.c ====
    if (chown(SUPP_CONFIG_FILE, AID_SYSTEM, AID_WIFI) < 0) {
        LOGE("Error changing group ownership of %s to %d: %s",
             SUPP_CONFIG_FILE, AID_WIFI, strerror(errno));
        unlink(SUPP_CONFIG_FILE);
        return -1;
    }
====================================

-- 
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting

Reply via email to