Q:

What class/types of smartphone chipsets support GPS, A-GPS, GLONASS AND have extended kalman filtering? 

I've been testing several Android phones (all running Android 4+)
Sony Xperia T, Moto G, Nexus and HTC 1 which are all giving decent tracks (all of which use GPS/GLONASS)
However we are also using the new Mi-Fone (Ai350) running android 4+ and we are seeing lots of noise.  Specs are hard to come by for this phone but it looks like basic GPS.  This is a sub $80 android phone
Question 1: What low end to mid-tier phones use GPS-GLONASS for better tracks? 
We are using Google's 'My Tracks' app to record the data'
Question 2: Do GPS chips have extended kalman filtering on them?  Some experts say yes while others say no.  I am seeking some clarification on this. 

A:

Some GPS hardware/subsystems in modern smartphones implement Kalman Filtering and sensor fusion. 
For example, this is the system log output (edited for relevant portions- full dump is here) from a Samsung Galaxy S3 with Android 4.3 after I fire up the LocationListener, when listening to the GPS_PROVIDER. 
Here you see the app (GPS Benchmark) listening for GPS updates, and the location engine starting:

03-04 12:08:37.172  24023-24023/?  D/GPSBenchmark﹕ Initializing LocationListener with values: interval = 0, distance = 0
03-04 12:08:37.172      399-412/?  D/LocationManagerService﹕ request 46455c00 gps Request[ACCURACY_FINE gps requested=0 fastest=0] from com.gpsbenchmark.android(10103)
03-04 12:08:37.172      399-412/?  D/LocationManagerService﹕ provider request: gps ProviderRequest[ON interval=0]
03-04 12:08:37.172      399-984/?  D/GpsLocationProvider﹕ setting position_mode to MS_BASED
03-04 12:08:37.172      399-984/?  E/LocSvc_eng﹕ I/===> int loc_eng_start(loc_eng_data_s_type&) line 573

Then, you see the GPSOneXTRA and gsiff GPS sub-system kick in, and access the sensors:

03-04 12:08:37.753      194-656/?  E/gpsone_dmn﹕ gpsone_glue_pipewrite:120] fd = 7, buf = 0xb5440a54, size = 820
03-04 12:08:37.753      194-657/?  E/gsiff_dmn﹕ I/gsiff_daemon_sensor_streaming_handler: Recv Sensor Streaming Accel(1,1,5,2)  Gyro(1,1,5,2) (valid,ready,#samp,batching)
03-04 12:08:37.753      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Initializing Android Sensor NDK Instance
03-04 12:08:37.753      194-657/?  E/gsiff_sp_and_ndk﹕ D/sp_and_ndk_init_after_request: Found 19 sensors. 
03-04 12:08:37.753      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: MPL rotation vector Vendor: Invensense Type: 11 Min Delay: 10000 us handle: 0xB6F52B90
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: MPL linear accel Vendor: Invensense Type: 10 Min Delay: 10000 us handle: 0xB6F52BB8
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: MPL gravity Vendor: Invensense Type: 9 Min Delay: 10000 us handle: 0xB6F52BE0
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: MPL Gyro Vendor: Invensense Type: 4 Min Delay: 10000 us handle: 0xB6F52C08
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: MPL accel Vendor: Invensense Type: 1 Min Delay: 10000 us handle: 0xB6F52C30
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: MPL magnetic field Vendor: Invensense Type: 2 Min Delay: 10000 us handle: 0xB6F52C58
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: MPL raw magnetic field Vendor: Invensense Type: 14 Min Delay: 10000 us handle: 0xB6F52C80
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: MPL Orientation (android deprecated format) Vendor: Invensense Type: 3 Min Delay: 10000 us handle: 0xB6F52CA8
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: GP2A Light Sensor Vendor: Sharp Type: 5 Min Delay: 0 us handle: 0xB6F52CD0
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: GP2A Proximity Sensor Vendor: Sharp Type: 8 Min Delay: 0 us handle: 0xB6F52CF8
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: BMP180 Pressure Sensor Vendor: Bosch Type: 6 Min Delay: 15000 us handle: 0xB6F52D20
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: Auto Rotation Sensor Vendor: Samsung Electronics Type: 22 Min Delay: 0 us handle: 0xB6F52D48
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: Rotation Vector Sensor Vendor: Google Inc. Type: 11 Min Delay: 10000 us handle: 0xB6F52D70
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: Gravity Sensor Vendor: Google Inc. Type: 9 Min Delay: 10000 us handle: 0xB6F52D98
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: Linear Acceleration Sensor Vendor: Google Inc. Type: 10 Min Delay: 10000 us handle: 0xB6F52DC0
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: Game Rotation Vector Sensor Vendor: Samsung Electronics Type: 15 Min Delay: 10000 us handle: 0xB6F52DE8
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: Uncalibrated Gyroscope Sensor Vendor: Samsung Electronics Type: 4 Min Delay: 10000 us handle: 0xB6F52E10
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: Orientation Sensor Vendor: Samsung Electronics Type: 3 Min Delay: 10000 us handle: 0xB6F52E38
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Found Sensor Name: Corrected Gyroscope Sensor Vendor: Google Inc. Type: 4 Min Delay: 10000 us handle: 0xB6F52E60
03-04 12:08:37.763      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_init_after_request: Starting sensor polling thread
03-04 12:08:37.773      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_update_sensor_status: Updating on accel reporting = 1 sampling_rate = 10
03-04 12:08:37.773      194-657/?  E/gsiff_sp_and_ndk﹕ D/sp_and_ndk_update_sensor_status: Enabling Sensor! 
03-04 12:08:37.773     399-1068/?  V/Sensors﹕ setDelay - sensor Accelerometer (handle 4), rate 200 ms (5.00 Hz)
03-04 12:08:37.773      399-410/?  V/Sensors﹕ setDelay - sensor Accelerometer (handle 4), rate 100 ms (10.00 Hz)
03-04 12:08:37.773      399-410/?  D/SensorService﹕ SensorDevice::setDelay, Return(true 1, false 0) =  1
03-04 12:08:37.773      194-657/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_update_sensor_status: Updating on gyro reporting = 1 sampling_rate = 10
03-04 12:08:37.773      194-657/?  E/gsiff_sp_and_ndk﹕ D/sp_and_ndk_update_sensor_status: Enabling Sensor! 
03-04 12:08:37.773     399-1013/?  V/Sensors﹕ enable - sensor Gyro (handle 3) dis -> en
03-04 12:08:37.773     399-1013/?  E/Sensors﹕ mEnabled = 18

Next, you see references to os_kf_init_filter, which appears to be a Kalman Filter:

03-04 12:08:37.783    194-24615/?  E/os_kf﹕ I/os_kf_init_filter: Filter initialized
03-04 12:08:37.783    194-24615/?  E/os_kf﹕ I/os_kf_init_filter: Filtered timeMs=182656804567, FiltMeas=2900.000000
03-04 12:08:37.783    194-24615/?  E/os_kf﹕ I/os_kf_filter_update: Unfiltered timeMs=182656804567, unFiltMeas=2900.000000, unFiltMeasUnc=0.000000
03-04 12:08:37.783    194-24615/?  E/gsiff_sp_com﹕ I/sp_process_raw_sensor_data: GYRO_DATA (0.000000,0.000000,0.000000) samp num = 1, flag 0, read @ sns 182656801 ms, print @ sys 182656804 ms
03-04 12:08:37.783    194-24615/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_polling_task: Num Samples read = 1! 
03-04 12:08:37.783    194-24615/?  E/os_kf﹕ I/os_kf_filter_update: Unfiltered timeMs=182656805421, unFiltMeas=3754.000000, unFiltMeasUnc=0.000000
03-04 12:08:37.783    194-24615/?  E/gsiff_sp_com﹕ I/sp_process_raw_sensor_data: ACCEL_DATA (0.071851,0.610730,9.844728) samp num = 1, flag 0, read @ sns 182656801 ms, print @ sys 182656805 ms
03-04 12:08:37.783      399-557/?  E/Sensors﹕ activatePendingSensors : mEnabled = 18
03-04 12:08:37.783      399-557/?  E/Sensors﹕ requested_sensors(70) from kernel
03-04 12:08:37.783      399-557/?  I/Sensors﹕ Disabled 9 axis sensor fusion
03-04 12:08:37.793      399-557/?  V/Sensors﹕ Starting DMP
03-04 12:08:37.793      399-557/?  W/MPL-9_sup﹕ 9 axis sensor fusion not available - No compass detected. 
03-04 12:08:37.793      399-557/?  I/Sensors﹕ Enabled 9 axis sensor fusion
03-04 12:08:37.803     399-1179/?  E/LocSvc_eng﹕ I/<=== status_cb line 932 GPS_STATUS_ENGINE_ON
03-04 12:08:37.803     399-1179/?  E/LocSvc_eng﹕ I/<=== status_cb line 932 GPS_STATUS_SESSION_BEGIN
03-04 12:08:38.053    194-24615/?  E/os_kf﹕ I/os_kf_filter_update: Unfiltered timeMs=182657075344, unFiltMeas=3236.000000, unFiltMeasUnc=0.000000
03-04 12:08:38.053    194-24615/?  E/gsiff_sp_com﹕ I/sp_process_raw_sensor_data: GYRO_DATA (0.001864,-0.034088,-0.025566) samp num = 2, flag 0, read @ sns 182657072 ms, print @ sys 182657075 ms
03-04 12:08:38.053    194-24615/?  E/gsiff_sp_and_ndk﹕ I/sp_and_ndk_polling_task: Num Samples read = 1! 
03-04 12:08:38.053    194-24615/?  E/os_kf﹕ I/os_kf_filter_update: Unfiltered timeMs=182657076564, unFiltMeas=4456.000000, unFiltMeasUnc=0.000000
03-04 12:08:38.053    194-24615/?  E/gsiff_sp_com﹕ I/sp_process_raw_sensor_data: ACCEL_DATA (0.061223,0.542921,9.131461) samp num = 2, flag 0, read @ sns 182657072 ms, print @ sys 182657076 ms

However, availability of Kalman Filtering and sensor fusion in the GPS hardware/subsystem will vary depending on the GPS hardware in the phone, and implementation of the subsystem.   In my experience, its extremely difficult to hunt down specs on individual device models that will give you documented GPS signal sensitivity, much less technical information such as whether or not Kalman Filtering or sensor fusion is performed.   Only way I've found to identify specific device components is through field tests or digging through system logs using the actual device. 
Note that if you're using MyTracks from Google to collect data, while its a great app, it is not using pure GPS at the Android platform level - instead its using the Google Fused Location Provider, which does some fusion among location provider and sensor data to give you a final location.   See this Google I/O session for how the fused provider differs from pure GPS. 
You may want to take a look at GPS Benchmark (full disclosure, its my app) if you want more fine-grained control over which location provider you're listening to (e.g., GPS, NETWORK, fused), as well as update rates, etc.