Search in sources :

Example 1 with Command

use of com.android.server.NativeDaemonConnector.Command in project android_frameworks_base by ParanoidAndroid.

the class MountService method destroySecureContainer.

public int destroySecureContainer(String id, boolean force) {
    validatePermission(android.Manifest.permission.ASEC_DESTROY);
    waitForReady();
    warnOnNotMounted();
    /*
         * Force a GC to make sure AssetManagers in other threads of the
         * system_server are cleaned up. We have to do this since AssetManager
         * instances are kept as a WeakReference and it's possible we have files
         * open on the external storage.
         */
    Runtime.getRuntime().gc();
    int rc = StorageResultCode.OperationSucceeded;
    try {
        final Command cmd = new Command("asec", "destroy", id);
        if (force) {
            cmd.appendArg("force");
        }
        mConnector.execute(cmd);
    } catch (NativeDaemonConnectorException e) {
        int code = e.getCode();
        if (code == VoldResponseCode.OpFailedStorageBusy) {
            rc = StorageResultCode.OperationFailedStorageBusy;
        } else {
            rc = StorageResultCode.OperationFailedInternalError;
        }
    }
    if (rc == StorageResultCode.OperationSucceeded) {
        synchronized (mAsecMountSet) {
            if (mAsecMountSet.contains(id)) {
                mAsecMountSet.remove(id);
            }
        }
    }
    return rc;
}
Also used : Command(com.android.server.NativeDaemonConnector.Command)

Example 2 with Command

use of com.android.server.NativeDaemonConnector.Command in project android_frameworks_base by ParanoidAndroid.

the class NetworkManagementService method setInterfaceConfig.

@Override
public void setInterfaceConfig(String iface, InterfaceConfiguration cfg) {
    mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);
    LinkAddress linkAddr = cfg.getLinkAddress();
    if (linkAddr == null || linkAddr.getAddress() == null) {
        throw new IllegalStateException("Null LinkAddress given");
    }
    final Command cmd = new Command("interface", "setcfg", iface, linkAddr.getAddress().getHostAddress(), linkAddr.getNetworkPrefixLength());
    for (String flag : cfg.getFlags()) {
        cmd.appendArg(flag);
    }
    try {
        mConnector.execute(cmd);
    } catch (NativeDaemonConnectorException e) {
        throw e.rethrowAsParcelableException();
    }
}
Also used : LinkAddress(android.net.LinkAddress) Command(com.android.server.NativeDaemonConnector.Command)

Example 3 with Command

use of com.android.server.NativeDaemonConnector.Command in project android_frameworks_base by ParanoidAndroid.

the class NetworkManagementService method setDnsServersForInterface.

@Override
public void setDnsServersForInterface(String iface, String[] servers, String domains) {
    mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);
    final Command cmd = new Command("resolver", "setifdns", iface, (domains == null ? "" : domains));
    for (String s : servers) {
        InetAddress a = NetworkUtils.numericToInetAddress(s);
        if (a.isAnyLocalAddress() == false) {
            cmd.appendArg(a.getHostAddress());
        }
    }
    try {
        mConnector.execute(cmd);
    } catch (NativeDaemonConnectorException e) {
        throw e.rethrowAsParcelableException();
    }
}
Also used : Command(com.android.server.NativeDaemonConnector.Command) InetAddress(java.net.InetAddress)

Example 4 with Command

use of com.android.server.NativeDaemonConnector.Command in project android_frameworks_base by ParanoidAndroid.

the class NetworkManagementService method modifyRoute.

private void modifyRoute(String interfaceName, String action, RouteInfo route, String type) {
    final Command cmd = new Command("interface", "route", action, interfaceName, type);
    // create triplet: dest-ip-addr prefixlength gateway-ip-addr
    final LinkAddress la = route.getDestination();
    cmd.appendArg(la.getAddress().getHostAddress());
    cmd.appendArg(la.getNetworkPrefixLength());
    if (route.getGateway() == null) {
        if (la.getAddress() instanceof Inet4Address) {
            cmd.appendArg("0.0.0.0");
        } else {
            cmd.appendArg("::0");
        }
    } else {
        cmd.appendArg(route.getGateway().getHostAddress());
    }
    try {
        mConnector.execute(cmd);
    } catch (NativeDaemonConnectorException e) {
        throw e.rethrowAsParcelableException();
    }
}
Also used : LinkAddress(android.net.LinkAddress) Inet4Address(java.net.Inet4Address) Command(com.android.server.NativeDaemonConnector.Command)

Example 5 with Command

use of com.android.server.NativeDaemonConnector.Command in project platform_frameworks_base by android.

the class MountService method unmountSecureContainer.

public int unmountSecureContainer(String id, boolean force) {
    enforcePermission(android.Manifest.permission.ASEC_MOUNT_UNMOUNT);
    waitForReady();
    warnOnNotMounted();
    synchronized (mAsecMountSet) {
        if (!mAsecMountSet.contains(id)) {
            return StorageResultCode.OperationFailedStorageNotMounted;
        }
    }
    /*
         * Force a GC to make sure AssetManagers in other threads of the
         * system_server are cleaned up. We have to do this since AssetManager
         * instances are kept as a WeakReference and it's possible we have files
         * open on the external storage.
         */
    Runtime.getRuntime().gc();
    int rc = StorageResultCode.OperationSucceeded;
    try {
        final Command cmd = new Command("asec", "unmount", id);
        if (force) {
            cmd.appendArg("force");
        }
        mConnector.execute(cmd);
    } catch (NativeDaemonConnectorException e) {
        int code = e.getCode();
        if (code == VoldResponseCode.OpFailedStorageBusy) {
            rc = StorageResultCode.OperationFailedStorageBusy;
        } else {
            rc = StorageResultCode.OperationFailedInternalError;
        }
    }
    if (rc == StorageResultCode.OperationSucceeded) {
        synchronized (mAsecMountSet) {
            mAsecMountSet.remove(id);
        }
    }
    return rc;
}
Also used : Command(com.android.server.NativeDaemonConnector.Command)

Aggregations

Command (com.android.server.NativeDaemonConnector.Command)58 LinkAddress (android.net.LinkAddress)12 InetAddress (java.net.InetAddress)11 InterfaceAddress (java.net.InterfaceAddress)6 NetworkInterface (java.net.NetworkInterface)6 Inet4Address (java.net.Inet4Address)1