This paper presents a novel indoor localization solution using a smart phone. Instead of building the inertial measurement unit (IMU), the integrated calibrated sensors inside the smart phone provide all the sensor information needed. Meanwhile, we avoid the complicated calibration process, when the calibration machines or workstations are not available. Since smart phones are meant to be held in hand, algorithms and methods based on walking speed reset can not be utilized. Therefore, correct orientation and step length information are indispensable. In this study, a modified Kalman filter based sensor data fusion was used to achieve accurate orientation data by detecting and minimizing the effect of magnetic field disturbance. Three methods are presented and compared to calculate each step length based on vertical acceleration using biomechanic model or empirical relation. The experimental results show that the proposed solution is capable of tracking the person indoors and to achieve a tracking accuracy of less than 0.3m.