Thursday, October 31, 2013

Google Nexus 5 Inside Out

• CPU: MSM8974A (Qualcomm) Possible that it can be using a 'higher binned' Snapdragon 800
• Radio Chip: Qualcomm MDM9x25 + RF360 support <-- well-made video, deals with LTE band fragmentation (max thorough-put
150mbps, carrier aggregation/MIMO, LTE-A ready)
• LTE Chip: WTR1605L (Qualcomm) (7-band world LTE chip. Found in the Nexus 4 and iPhone 5s) List of Supported Bands for LG-D820, NA model Here is another list from Anandtech
• LG-D820 (North American Model): LTE bands 2/4/5/17/25/26/41
• LG-D821 (International Model): LTE bands 1/3/5/7/8/20/41
• Handy list of LTE networks
• Motion Co-Processor: MPU-6515 (Invensense) (6-axis gyro + accelerometer, MEMS motion tracking. Low voltage compared to it's comparables; 1.7v minimum) (afaik the N5 will be the first to have
this new low powered chip)
"The MPU-6500 MotionTracking device sets a new benchmark for 6-axis performance with nearly 60% lower power, a 45% smaller package, industry-leading consumer gyroscope performance, and major
improvements in accelerometer noise, bias, and sensitivity."
• Power Management Controller: PM8941/PM8841 (Qualcomm) (PM8941 Found in the LG G2, Nexus 7 (2013), and Note 3)
• WiFi/BT: BCM4339 (Broadcom) (5Ghz WiFi + 802.11ac) PA + LNA front end support
• Audio Codec: WCD9320 (Qualcomm) '24bit x 192kHz FLAC/WAV' (found in the LG G2, among other phones like the Note 3)
• Power controller for Display: DW8755 (Dongwoon Anatech) Lower powered than it's predecessors
• LED Backlight: LM3630A (Texas Instruments)
• Compass Sensor: AK8963C (Asahi Kasei Microdevices) (this component looks to be brand new. Datasheet is time-stamped for October 2013)
• Barometer Sensor: BMP280 (Bosch SensorTec) (Datasheet here)
• Enhancement of GPS navigation (e.g. time-to-first-fix improvement, dead-reckoning, slope detection)
• Indoor navigation (floor detection, elevator detection)
• Outdoor navigation, leisure and sports applications
• Weather forecast
• Health care applications (e.g. spirometry)
• Vertical velocity indication (e.g. rise/sink speed)
• Ambient/Proximity Sensor: APDS-9930 (Avago)
• NFC Chip: BCM20793M (Broadcom) (This chip is not compatible with Google Wallet as it does not have embedded hardware security element. Same with the Nexus 7 refresh)
• Envelope Tracking feature: [QFE1100] (Qualcomm)
• ACPM-7600: (Avago) (This is related to power management and is currently found in the Note 3) This chip has to do with envelope tracking and carrier aggregation
• Slimport Transmitter: ANX7808 (Analogix)
• USB host, device or OTG data passes through by default
• Meets requirements of Inter-Chip USB specification
• HDMI 1.4a compliant (Stereo 3D video output support)

Android 4.3 init.rc

init is the first process after kernel started. For Android 4.3, the corresponding source code lies in: system/core/init https://android.googlesource.com/platform/system/core/+/9a4913d422f4c18033333afe8e2e1d699b112d44/init/ It does the following tasks step by step:
Initialize log system.
Parse /init.rc and /init.%hardware%.rc.
Execute early-init action in the two files parsed in step 2.
Device specific initialize. For example, make all device node in /dev and download firmwares.
Initialize property system. Actually the property system is working as a share memory. Logically it looks like a registry under Windows system.
Execute init action in the two files parsed in step 2.
Start property service.
Execute early-boot and boot actions in the two files parsed in step 2.
Execute property action in the two files parsed in step 2.
Enter into an indefinite loop to wait for device/property set/child process exit events. For example, if an SD card is plugged in, init will receive a device add event, so it can make node for the
device. Most of the important process is forked in init, so if any of them crashed, init will receive a SIGCHLD then translate it into a child process exit event, so in the loop init can handle the
process exit event and execute the commands defined in *.rc (it will run command onrestart).

The .rc file is a script file defined by Android. The default is device/system/rootdir/init.rc. We can take a loot at the file format(system/core/init/readme.txt is a good overall introduction of the
script). Basically the script file contains actions and services.

Wednesday, October 30, 2013

Finding Apache configuration file (httpd.conf)

Finding Apache configuration file (httpd.conf) Just a quick tip for programmers working with Apache. Sometimes I'm asked where to find the Apache configuration file on a given server. Since it's possible to configure this there is no "default location" so I usually do: $ ps -ef | grep apache which gives me a list like deploy@cmd01:/$ ps -ef | grep apache root 4053 1 0 06:26 ? 00:00:04 /usr/sbin/apache2 -k start www 5189 4053 0 11:00 ? 00:00:00 /usr/sbin/apache2 -k start www 5199 4053 0 11:00 ? 00:00:00 /usr/sbin/apache2 -k start ... Then simply run $ /usr/sbin/apache2 -V and you will get the details you need, specifically this Server compiled with.... -D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"