Adb get imei android 13 command line samsung. md5 18 = type exit & exit 19 = REBOOT YOUR PHONE.
Adb get imei android 13 command line samsung About; Products OverflowAI; Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers; Advertising & Talent Reach devs & Moreover I found that if I want to use AT commands to do so I have to root the mobile phone. instead of Nexus 7 you might get Nexus 7\r). I recently updated my Pixel 5 device to Android 12 Beta and found that it is no longer possible to fetch the IMSI information via ADB using the command service call iphonesubinfo 8 i32 1. oppo. Android 8 and later (>= SDK 26) use That's probably the default configuration in Android 10. If you’re running a script and want to ensure that the ADB command only runs when your device is You should use adb shell getprop command and grep specific info about your current device, For additional information you can read documentation: Android Debug Bridge documentation. Edit: There are various ways to change it. ADB wich comes with Android SDK and can be found HERE Ok Once you have all that stuff we can continue. So I just want to know . 3. Something like this: adb shell getprop | grep -e 'ro. If I would have implemented a NativeActivity I would have used "AConfiguration_fromAssetManager" followed by "AConfiguration_getOrientation". nickname" The Windows command should be similar. device. As pointed out in this SO answer you can reverse lookup the AVD name for each serial number using Telnet. #2 Use a series of ADB commands to pass the input strings and stimulate the touch events. bin 14 = at command prompt [ C:\adbtools\ ], type adb shell 15 = type su 16 = type cp /sdcard/nv_data. I went through some posts which allow changing it in linux, but they are not valid for android. bin. I preference to query Sqlite base, but accept any command-line solution. Downloading ADB. Visit Stack Exchange. This is an example: adb devices (you will get attached device IDs) ANDROID_SERIAL=DEVICE_ID adb shell getprop ro. internal. I needed to confirm that the serial number of the device in the shell session was the same as the serial number from adb devices. Another To fetch the serial number of the connected device, use the adb get-serialno command. 2015 at 13:05. Follow answered Feb 16, 2017 at 13:07. Finally, we run the command: ip addr show wlan0 | grep 'link/ether '| cut -d' ' -f6 this command can also be used in Linux if its interface has the same name as wlan0. 34. @wesleyfranks congratulations on having such a popular question! It's one of the top search results on Google for installing ADB One question, as I don't have installed adb in my machine yet (missing android phone). Matheus Shita Matheus Shita. adb wait-for-device. Unfortunately, most users are familiar with only a small set of ADB commands. Access fastboot. Write better code with AI Security. Daemon (adbd) , which runs commands on a device. Commented Nov 4, 2015 at 8:52. language]: [en] [ro. 1 un-rooted how can I pull its imei using adb or fastboot getvar ? tried: getprop gsm. 1 1 1 silver badge. If you already have an own app that you can install on the device that you want to know the IMEI from, add this BroadcastReceiver to your app:. SENDTO -d sms:CCXXXXXXXXXX --es sms_body "SMS BODY GOES HERE" --ez exit_on_sent true adb shell input keyevent 22 adb shell input keyevent 66 4. Note that ADB shell ends lines with \r\n, which depending on your platform might or might not make it more difficult to access the exact value (e. 3) from which I am trying to extract the IMEI via ADB. you can't get IMEI info in I am working on Adb with my Samsumng Galaxy Device. 5,846 4 4 gold badges 29 29 silver badges 38 38 bronze They also have a github that has a couple of scripts that let you extract AT+ Commands from Firmware, Interact with the COM port, a script for injecting AT+ Commands, and USB Mode Switch. schoel schoel. Implement an ADB command-line tool to programatically (c++) get the current orientation. The easiest way is to download the up-to-date SDK Platform Tools package here that contains ADB with support for Windows, Mac and Linux. I will not teach how to Root your device because custom roms are already rooted and if you have a stock rom there are plenty tutorialn on hou to root it, and also i will not teach you how to install Kies because its realle easy and anyone can do it, i will only On Android 12 (and likely earlier/later versions, but I haven't tested), you can retrieve the kernel command line by taking a bug report. version. imei ro. Source. 2). e: wifi/bt mac address and your IMEI (nv_data. You will get the Product Model and Product ID, so you can copy & paste them into EMUI Unlock web site and you will get your Bootloader Unlock Code EDIT: Note that this is NOT the android_id used by the Google apps. adb shell I'm using command: adb shell "service call iphonesubinfo 1 s16 com. Gets the Android version of the device. ril. How can I resolve it? android; adb; android-5. Check the SIM Card Tray. 1. This is the interface Android needs for ADB to work. CORRUPTED OR NOT? You can check if the efs is mounted or completly damaged with this command: adb shell mount I'm developing an application that uses ADB Shell to interface with android devices, and I need some way of printing out the application name or label of an application, given maybe their package n Skip to main content. If you have more devices attached to your machine, you will not be able to use this command by default. In that example, the app retrieves IMEI on Android 10 using this way and declaring android. It now shows the following information when executed via ADB: The details in adb devices -l consist of the following three properties: ro. – wesley franks. I Tried Following:-adb shell dumpsys iphonesubinfo but it returns nothing. 4k 27 27 gold badges 153 153 silver badges 176 176 bronze badges. Does anyone know how I can get the 2nd IMEI number? Skip to main content. Ok, @VineethHolla was 2 minutes faster – This command-line tool works like a bridge between a connected computer and an Android device or emulator. I added some examples below: language - adb shell getprop | grep language [persist. If you already have Android Studio, go to Preferences > Appearance & Behavior > System Settings > Android SDK, check I want to change the IMEI of a rooted Android device via adb so that the entire process could be automated via appium. imei dumpsys iphonesubinfo gsm. locale. Mine seems to be more of a step process I wouldn't say it's a duplicate. Properties include build information, API levels, and also the device I am currently using this command adb shell "service call iphonesubinfo 1" to get IMEI number, but it only returns 1st one. above are my search results related to reading SMS from my Android device, so I just want know, how can I read the SMS from my Android device using adb shell commands? Commented Jan 13, 2015 at 18:09. Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for Let's look at some of the most useful ADB commands you should know as an Android user. Input “adb reboot bootloader” and wait as your device enters Fastboot mode. Where can I find a log of why my app crashed? /EFS partition contains a lot of information about your phone, f. Automate any workflow There are two possible ways (Non-Root): #1 Develop an app that implements the Account Manager and facilates the login process. READ_PRIVILEGED_PHONE_STATE is required. adb shell service call iphonesubinfo 2 I am wondering if there is any way to run *# codes on android using adb command I have tried this: **service call phone 2 s16 "*#06#"** tried with % instead of # as well. Check IMEI. Sign in Product GitHub Copilot. intent. release. Improve this answer. busybox). " 6. Navigation Menu Toggle navigation. So far I had Type the Command to Get IMEI: Enter adb shell dumpsys iphonesubinfo or adb shell service call iphonesubinfo in the command line. Commented Jul 13, 2015 at 1:29. antoninkriz antoninkriz. Improve this question. adb shell am start -a android. exe executable file to the path variable to access it properly . The Telnet option - The Ugly Way. there are two OPPO phones, using adb cannot accurately read IMEI 1 and 2, but only MEID. try restarting ur device and computer also then execute following commands: adb kill-server adb start-server and then see if it show device using. Stack Overflow . apk I want to change the timezone using adb shell command. fastboot oem writeimei 123456789012347 Step 3. 6. I am using samsung galaxy S3 I9300 device, which is rooted. Follow answered Feb 21, 2019 at 17:42. The underlying Android service for this is a bit complicated. b. Specially giving a place to download the adb files. Bug reports are collected by Android's dumpstate command, which can and does read /proc/cmdline. Dmitry Dmitry. imei. More so a different way of going about it. through Android Studio. I've tried two Android 9 devices and a single Android 8. I want to get the IMEI number of the device using ADB, but I have been unable to do that. It says that HAL 2. Follow edited May 23, 2017 at 10:30. Follow asked Sep 25, 2014 at 8:53. Depending on the android version and your carrier one or two of the following commands will tell you the phone number (service call commands require root privileges): service call iphonesubinfo 4 service call iphonesubinfo 5 service call iphonesubinfo 6 service call iphonesubinfo 7 service call iphonesubinfo 8 Installing ADB & Drivers. BR, Doman. Also I try this: adb shell service call iphonesubinfo 1 but neither . name, ro. Is there a way to get the source code from an APK file? 1209. Use-case. In this article, we’ve compiled a huge list of ADB Shell commands I have an app that is not in the market place (signed with a debug certificate), but would like to get crash log data, whenever my application crashes. adb shell . However, if I do adb get-serialno I get a different value than the one shown in this website. md5) is removed (rm) as the system will generate a new one. asked Mar 16, 2015 at 8:34. Gets the IMEI number of the device. Loading Tour Start here for a quick overview of ADB commands provide access to a Unix Shell that runs a command directly on your Android device. I tried the following: adb adb shell // Open or run commands in a terminal on the host Android device. So, to save time, the first step is dump screen to a raw data file. It is part of the Android Software Development Kit (SDK) and is commonly used by developers, technicians, and advanced users to debug apps, install 2) Be sure to check "Android Composite ADB Interface". 0 appeared at Android 10, and previous versions only had HAL 1. On some of the devices we are seeing the date/time on the device getting reset (don't know why) to some date in the past (like 1/1/2000). Skip to main content. Then use the adb command - adb pull /data/data/appname. instead of redirecting output to the modem device run. 1,056 4 4 gold badges 21 21 silver badges 38 38 bronze badges. But will it also return info regarding hardware parts like the camera? if so, could you provide an example of the hardware information output? I would really appreciate it! – adb shell <your command> will let you execute almost any linux command. Usage: uiautomator <subcommand> [options] Available subcommands: help: displays help message runtest: executes UI automation tests runtest <class spec> [options] <class spec>: <JARS> < -c <CLASSES> | -e class <CLASSES> > <JARS>: a list of jar files containing test classes and dependencies. How can I read IMEI? Android version 11 Model PEAM00 and PEMM20. My phone is a Samsung Galaxy Trend Lite running Jelly Bean OS (4. Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow SO is not human search engine, if you didn't find it with google I suggest that you try to send AT command using the atinout program, e. I have rooted the phone and I am using the adb shell as super user. Android Q (>= SDK 29) android. release – As the iphonesubinfo 1 command does not work on many devices, here is a little workaround that should work consistently on most Android versions and on rooted and unrooted devices:. Related. I also tried with Service Call Command:- adb shell service call iphonesubinfo but it gives me Strange Result Like this:- I will post an answer to my own question. adb shell getprop ro. adb shell getprop -T. We have compiled a list of ADB commands with detailed explanations. Skip to content. An ‘adb shell’ command in a terminal sends a signal to your device and triggers the remote shell command console. bin). Android "Only the original thread that created a view hierarchy can touch its views. permission. md5 18 = type exit & exit 19 = REBOOT YOUR PHONE. Does anyone know how I can get the 2nd IMEI number? From other stackoverflow post that I can see there's a adb shell script to capture the IMEI1 from Android device, but unable to get the IMEI2 and EID: adb shell service call Type the Command to Get IMEI: Enter adb shell dumpsys iphonesubinfo or adb shell service call iphonesubinfo in the command line. I want to know ICCID of SIM in Andorid phone. Google seems to have decided for some confusion here. 271 1 1 gold badge 9 9 silver badges 21 21 bronze badges. Stack Overflow. About; Products OverflowAI; Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers; Advertising & Talent Reach devs & Working on a G4 H815 5. asked Dec XAA CSC - How to get Android 13/OneUI 5 (Might work for others too) [MTP] SAMSUNG Mobile USB Modem (COM3)) - Go to the ADB section, press Change CSC - You may get a prompt on your phone to allow your computer to do USB debugging (if you haven't done it before), accept it - A window will appear on the SamFW app on your computer, telling you about the Samsung AT Commands [closed] Ask Question Asked 10 years ago. com. build. 7. How can you get the build/version number of your Android application? 1499. You will find the APK's there. . Use adb shell uiautomator dump command:. 2. 0-lollipop; Share. AT +EGMR=1,7,”XXXXXXXXXXXXXXXX” How i can change IMSI? Thank you. 863 1 1 gold badge 7 7 silver badges 14 14 bronze badges. Everyone . Thus ADB Shell commands let you control your Android device. Here are the three ways I know to collect a bug report: I have just installed adb and I am trying to retrieve information on the cellular tower which my phone is connected to. bak, tap rename, type nv_data. The daemon on the Android device connects with the server on the host PC over USB or TCP, which connects to the client that is used by the end user over TCP. From a command-line shell on the host computer, run the following command: adb shell or if you have a device attached, specify that you want the emulator by adding the -e option: adb -e shell At the adb shell prompt (#), run this command: setprop persist. It works by pressing the dialer key, then typing *#06# , then parsing the text on screen to find the IMEI Label and the next element which contains the actual IMEI. adb logcat -c // clear // The parameter -c will clear the current logs on the device. If you can carefully remove We used to get Device ID/IMEI using the following command: adb shell dumpsys iphonesubinfo But since last Android update (5. You need to request the Permission READ_PHONE_STATE at runtime, then you can still get the IMEI – Flo We. [:space:]'" It was working fine on Android 13, but now it gives partly broken IMEI, where 3 numbers came as ' symbol It's not just these are additional symbols, what i mean is that exactly 3 numbers comes as symbol As far as i know, every Android 14 devices with IMEI I haven't tryed to change IMEI on any new phone, as I remember it was a hassle 10 years ago Ha! It works on Android 13 (S23) and Android 8 (S8). To do so, first connect a USB cable to your phone and PC. The daemon runs as a For android versions before 11 I was using the below command to get IMEI number from my device: adb shell "service call iphonesubinfo 4 | cut -c 52-66 | tr -d '. I'm change IMEI using AT command in engineer menu. Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. Tried the following command, but it doesn't work, only MEID is returned. I was using the shell in the device (starting a session with adb shell) and was getting different results from using adb commands from the host command line (eg. As the user base of this OS is increasing rapidly, the issue of Google Account Lock or FRP lock is also being increasingly faced by the users. This command shows the ADB status of the connected Android phone, tablet, watch or an emulator. action. It was, so I had to look elsewhere for why my Dear all, Recently my telephone was stolen and the police need my IMEI number. registry from the shell, which gave me a cellInfo parameter, but it's equal to null. Add a comment | 2 For android version 13, you can call them like: Getting IMEI with adb command from device on Android 14. 1 by following this tutorial and this StackOverFlow Answer, I did the exact same instructions but still couldn't get SuperSU to work so that I could maybe use an app to change the IMEI (it would always just brick the emulator on the android loading screen). In previous line, we used the -s option of the adb command to specify the serial number. telephony it shows result permission denied. android; command; at-command; imei; Share. bin 17 = type rm -rf /efs/nv_data. 3) Go to "[SDK]/platform-tools", Shift-click there and open Command Prompt and type "adb devices" and see if your device is listed there with an unique ID. I can get the ICCID using getIccSerialNumber() when used in Android Application. For hackers, this means we can interact with Android devices to add and remove packages, As said above, you can get the apk by using the pull command in adb. language]: [en] boot complete ( device ready I am currently using this command adb shell "service call iphonesubinfo 1" to get IMEI number, but it only returns 1st one. This command would display device information about the android phone/tablet. I want to Get IMEI number of Device using Adb Command but Unable to do that. 1, and dumpsys thermalservice didn't produce any output on any of them. android; adb; Share. A ndroid is the worlds most popular opensource mobile platform OS developed by Google. I am working on a project using the Wi-fi only version of the Samsung Galaxy tab (7"). imei]: [<IMEI here>] That's a custom property on my particular device, but yours might have something similar. How to Use ADB Commands to Bypass FRP. Edit: when you input your IMEI, it shows you several info about your phone and one of them is the Serial Number which is different than the Now with your IMEI lets get the last two codes: Product Model and Product ID Go to imei24. It's highly recommended to backup the whole partition, or at least copy the files from the efs directory. I know that this device is ancient, but this is one of my tasks. You need to provide ANDROID_SERIAL environment variable which identifies your device ID. nv_data. I tried to use dumpsys telephony. You can connect to your Samsung modem with Realterm, I use it everyday to communicate with modems of different brands Samsung, LGs, and ZTE using a long list of AT commands, and It helps me to verify the result that I get in Realterm matches with the apps I am doing. 5. shell The whole oneliner doesn't work on windows (but can be run in linux/android shell). Shows the types of properties instead of the values. To access it on. Part 1. Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for adb shell getprop ro. I also tried to run SuperSU on a android 7. public class GetImeiReceiver extends But in S20 Ultra(Android 11), I cannot get IMEI 2 using the above cmd. Only system apps can require this permission. I need a bit of assistance. This is kind of weak, because all you're doing is finding an instance of the emulator launched given a particular AVD name. And if I'm approaching this the wrong way then please suggest me some alternative. gsm. Example: adb get-serialno adb get-state. I never bothered to write it down and don't have the original box, so I wondered whether the IMEI number is stored in ADB or in some other software, since I'm using an automation platform that has an ADB session which requires the device_serial_list, which is the serial number. 0 - Lollilop), this command doesn't return anything, I performed this t Exactly what I wanted. This command works to obtain IMEI. Some commands are not available and must be installed (e. android. How to Establish an ADB Connection Between Your Phone and PC Before getting to the list of commands, it is necessary to activate ADB commands between your phone and PC. Is there any way I could do that using appium. Transition codes of iphonesubinfo used: In addition to other answers guiding to rename the device serial, you can also use its transport_id to access. png is quite slow because it take most of its time converting to png file type. I'm down for building this into something 13 = long tap . 4) If yes, then ADB have been successfully detected at this point. 554 5 5 silver badges 11 11 bronze badges. adb reboot fastboot Step 2. READ_PHONE_state only. Let‘s get ADB installed so we can start using it. This can be done either via button combination which differs from device to device or the easy method over adb command. Enter “adb devices” in the command line to verify ADB recognition of your device. 0. adb logcat -d > ADB shell getprop is a command for Android development in retrieving system properties from the connected device. Even I tried using the "iphonesubinfo 3 i32 1" and "iphonesubinfo 3 i32 2", but it returns empty. Can anyone check if he or she able to Uninstall any app in secure folder using ADB? I get below exception on Android 11 UI 3. Firstly, I find out that the command screencap screen. product. 1. For Play Services, there's a separate android_id stored by GTalk, as pointed out by a blog post (also see this answer by HassleFixes, who is the autor of StripSearch, and thankfully pointed this out in the comments):. Open two cygwin consoles/terminals (one sending data, one receiving data) and enter in one of the terminals to enter the device: # terminal 1 adb forward tcp:5555 tcp:5555 # forward data over tcp connection adb shell # open a connection su # gain Android SmartPhone USB connected to a Windows Desktop. call up your dialer adb get-statе (print device state) adb get-serialno (get the serial number) adb shell dumpsys iphonesybinfo (get the IMEI) adb shell netstat (list TCP connectivity) adb shell pwd (print current working directory) adb shell dumpsys battery (battery status) adb shell pm list features (list phone features) adb shell service list (list all services) You can get it with this command on Mac/Linux: . ADB, short for Android Debug Bridge, is a versatile command-line tool that allows users to communicate with their Android devices from a computer. nickname' Share. I've googled it and found many results. then you can run commands in ur device using. Apfelsaft Apfelsaft. The steps I did are: abd shell su echo -e "AT\r" But I am not sure how to read the response given by the above commands. on Unix use grep like > adb shell getprop | grep density on Windows use find like > adb shell getprop | findstr "density" Returned value adb installed on host computer (not needed, but recommended) Step 1. baseband. I know they are a little old but I've been partially successful at building them and running them in both WSL and Ubuntu Desktop. I found that the Android shell terminal doesn't support find command. Android Debug Bus (ADB) and Fastboot are the mediums to communicate your android phone with your PC. Follow edited Dec 25, 2022 at 22:51. Manifest. [:space:]'" or. Problem to resolve. UPDATE - July 2020: On some builds of Android 10 (for example Samsung Galaxy A01), the IMEI is BACKGROUND. By using atinout you are How to get that using adb shell command? Skip to main content. adb shell service call iphonesubinfo 1. adb $ getprop | grep -i IMEI [persist. Since, you are talking about your installed applications, go ahead and look in the /data/app directory of your Android filesystem. adb devices -l # first_huge_device_id0000 device product:p124 model:md1 device:d1 transport_id:1 # second_huge_device_id0000 device It's a Samsung Galaxy S5 with Android 5. Community Bot. echo "ATD12345678900;" | atinout - /dev/ttyGS0 - I am guessing, but it could be that the echo command in the adb shell does not interpret \r as anything special (that would at least explain no response whatsoever). Use adb devices -l to list the devices along with their transport_id and then use adb -t ID to access the device. I tried to redirect the command as follows: echo -e "AT\r" > /dev/smd0, but when I execute cat /dev/smd0 I do not see any response I just see install adb e. I did this too but still is not working. Thats awesome, thanks! I mean: adb shell service call iphonesubinfo 1 s16 com. Matthias Braun. shell | cut -c 52-66 | tr -d '. The answer maybe device-specified (nexus7 2013), and you can adjust it to your own devices. imei but I get no output using adb shell services call iphonesubinfo 1 I need to send AT command to modem. Here is an example script that specifically targets activities. Find and fix vulnerabilities Actions. Share. Community Home How to find ICCID of SIM in Android device connected to Linux PC using command? I have connected my Android device with SIM to my Linux PC. Make sure to add adb. Reply reply AxelTheRabbit • I have the number I need to Simple non-GUI app to help getting the device IMEI over ADB - saschoar/android-imei-getter. Commented Jun 6, 2016 at 8:06. are there some changes in android 6? can we still access the IMEI by some means? – therealprashant. The Android Debug Bridge (adb) is a programming tool used for the debugging of Android-based devices. locale [BCP-47 language tag];stop;sleep 5;start When I want list all the files in my Android Phone. g. This command should return relevant You can invoke a client from a command-line terminal by issuing an adb command. Set new IMEI. Any help will be much . Then we call the shell command to indicate that we will run a Linux command. This is the hardware serial number. But I need to I have created customized scripts specifically for activities, and I am confident that you will find them useful. imei ril. Next, write $ sudo apt update $ sudo apt install android-tools-adb android-tools-fastboot-- check for connected Android device -- $ adb devices-- now to change the IMEI -- $ adb reboot fastboot $ fastboot oem writeimei [ IMEI number here ]-- verify that it was written -- $ fastboot getvar imei-- reboot the phone -- $ fastboot reboot. model and ro. I get below exception on Android 11 UI 3. About; Products OverflowAI; Stack Overflow for Teams Where developers & technologists share private knowledge with How I can get the list of all installed on my Android 8 packages using ADB Shell? I preference to query Sqlite base, but accept any command-line solution. I am working with ADB on my Samsung Galaxy device. This command should return relevant information, including your IMEI number. Quote: **The md5 hash/signature (nv_data. Stack Exchange Network. 1608. even I tried accessing. adb shell pm list packages). adb devices for available device. sys. com and type the IMEI you found from fastboot command. To utilize the script, you can run it in any terminal with ADB installed, or directly on your device. But I don't want to run Android App on a phone. Reading SMS Commented Jul 13, 2015 at 1:13. With proper knowledge of the commands and their functions, you can explore the true potential of your There are other options beside Hyperterminal. I have a Huawei g6-l11 (with Android 4. /adb shell getprop | grep "ro. Verify that the IMEI has changed There are 2 ways that I know of to perform a reverse Serial Number to AVD name lookup. It works well with the Galaxy S3 or any other Galaxy phone I would like to be able to send a SMS from my Android phone while it's connected to my computer using the following ADB commands. In many cases, the IMEI number is printed on the SIM card tray of your Samsung device. Connect your phone to your PC and launch a command prompt or terminal window with administrative privileges from the ADB and Fastboot directory. Simple non-GUI app to help getting the device IMEI over ADB - saschoar/android-imei-getter. If the calling package is the device or profile owner then the READ_PHONE_STATE permission suffices. This is not a programming question; try To get required info from ADB, the following command executed from the command line will return a lot of useful properties about the connected devices > adb shell getprop To filter through these properties. oem. Simply navigate I'm trying to get the IMEI with this command "adb shell dumpsys iphonesubinfo" but is not working. abhfxjb mkn uot gwu qgodv avmyp obd rwuk tsywypl cfttjju sqk dfwm prqpig ogit btx