Here You Will get All Details of Your Device !!!  
    //Main Classs 
         package com.example.devicedetail;
                import android.annotation.SuppressLint;
            import android.app.Activity;
            import android.content.Context;
            import android.os.Bundle;
            import android.telephony.TelephonyManager;
            import android.view.Menu;
            public class Device extends Activity {
            @SuppressLint("NewApi")
                @Override
                protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_device);
                    String debug2 = System.getProperty("os.version");
                    String debug3 = android.os.Build.VERSION.RELEASE;
                    String debug4 = android.os.Build.DEVICE;
                    String debug5 = android.os.Build.MODEL;
                    String debug6 = android.os.Build.PRODUCT;
                    String debug7 = android.os.Build.BRAND;
                    String debug8 = android.os.Build.DISPLAY;
                    String debug9 = android.os.Build.CPU_ABI;
                    String debug10 = android.os.Build.CPU_ABI2;
                    String debug11 = android.os.Build.UNKNOWN;
                    String debug12 = android.os.Build.HARDWARE;
                    String debug13 = android.os.Build.ID;
                    String debug14 = android.os.Build.MANUFACTURER;
                    String debug15 = android.os.Build.SERIAL;
                    String debug16 = android.os.Build.USER;
                    String debug17 = android.os.Build.HOST;
                    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
                    String imei = telephonyManager.getDeviceId();
                    String macwlan = Utils.getMACAddress("wlan0");
                    String macethr = Utils.getMACAddress("eth0");
                    String ip4 = Utils.getIPAddress(true); // IPv4
                    String ip36 = Utils.getIPAddress(true); // IPv6
                }
                @Override
                public boolean onCreateOptionsMenu(Menu menu) {
                    // Inflate the menu; this adds items to the action bar if it is present.
                    getMenuInflater().inflate(R.menu.activity_device, menu);
                    return true;
                }
            }
    ----------
        //Util Class
        package com.example.devicedetail;
        import android.annotation.SuppressLint;
        import java.io.*;
        import java.net.*;
        import java.util.*;   
        import org.apache.http.conn.util.InetAddressUtils;
        public class Utils {
            /**
             * Convert byte array to hex string
             * @param bytes
             * @return
             */
            public static String bytesToHex(byte[] bytes) {
                StringBuilder sbuf = new StringBuilder();
                for(int idx=0; idx < bytes.length; idx++) {
                    int intVal = bytes[idx] & 0xff;
                    if (intVal < 0x10) sbuf.append("0");
                    sbuf.append(Integer.toHexString(intVal).toUpperCase());
                }
                return sbuf.toString();
            }
            /**
             * Get utf8 byte array.
             * @param str
             * @return  array of NULL if error was found
             */
            public static byte[] getUTF8Bytes(String str) {
                try { return str.getBytes("UTF-8"); } catch (Exception ex) { return null; }
            }
            /**
             * Load UTF8withBOM or any ansi text file.
             * @param filename
             * @return  
             * @throws java.io.IOException
             */
            public static String loadFileAsString(String filename) throws java.io.IOException {
                final int BUFLEN=1024;
                BufferedInputStream is = new BufferedInputStream(new FileInputStream(filename), BUFLEN);
                try {
                    ByteArrayOutputStream baos = new ByteArrayOutputStream(BUFLEN);
                    byte[] bytes = new byte[BUFLEN];
                    boolean isUTF8=false;
                    int read,count=0;           
                    while((read=is.read(bytes)) != -1) {
                        if (count==0 && bytes[0]==(byte)0xEF && bytes[1]==(byte)0xBB && bytes[2]==(byte)0xBF ) {
                            isUTF8=true;
                            baos.write(bytes, 3, read-3); // drop UTF8 bom marker
                        } else {
                            baos.write(bytes, 0, read);
                        }
                        count+=read;
                    }
                    return isUTF8 ? new String(baos.toByteArray(), "UTF-8") : new String(baos.toByteArray());
                } finally {
                    try{ is.close(); } catch(Exception ex){} 
                }
            }
            /**
             * Returns MAC address of the given interface name.
             * @param interfaceName eth0, wlan0 or NULL=use first interface 
             * @return  mac address or empty string
             */
            @SuppressLint("NewApi")
            public static String getMACAddress(String interfaceName) {
                try {
                    List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
                    for (NetworkInterface intf : interfaces) {
                        if (interfaceName != null) {
                            if (!intf.getName().equalsIgnoreCase(interfaceName)) continue;
                        }
                        byte[] mac = intf.getHardwareAddress();
                        if (mac==null) return "";
                        StringBuilder buf = new StringBuilder();
                        for (int idx=0; idx<mac.length; idx++)
                            buf.append(String.format("%02X:", mac[idx]));       
                        if (buf.length()>0) buf.deleteCharAt(buf.length()-1);
                        return buf.toString();
                    }
                } catch (Exception ex) { } // for now eat exceptions
                return "";
                /*try {
                    // this is so Linux hack
                    return loadFileAsString("/sys/class/net/" +interfaceName + "/address").toUpperCase().trim();
                } catch (IOException ex) {
                    return null;
                }*/
            }
            /**
             * Get IP address from first non-localhost interface
             * @param ipv4  true=return ipv4, false=return ipv6
             * @return  address or empty string
             */
            public static String getIPAddress(boolean useIPv4) {
                try {
                    List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
                    for (NetworkInterface intf : interfaces) {
                        List<InetAddress> addrs = Collections.list(intf.getInetAddresses());
                        for (InetAddress addr : addrs) {
                            if (!addr.isLoopbackAddress()) {
                                String sAddr = addr.getHostAddress().toUpperCase();
                                boolean isIPv4 = InetAddressUtils.isIPv4Address(sAddr); 
                                if (useIPv4) {
                                    if (isIPv4) 
                                        return sAddr;
                                } else {
                                    if (!isIPv4) {
                                        int delim = sAddr.indexOf('%'); // drop ip6 port suffix
                                        return delim<0 ? sAddr : sAddr.substring(0, delim);
                                    }
                                }
                            }
                        }
                    }
                } catch (Exception ex) { } // for now eat exceptions
                return "";
            }
        }
    ----------
        //PerMissions
        <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />