add TDeviceUtil