Jump to content

Samsung Galaxy Express SGH-I437 (samsung-expressatt): Difference between revisions

From postmarketOS Wiki
No edit summary
 
(17 intermediate revisions by 5 users not shown)
Line 6: Line 6:
| imagecaption = Samsung Galaxy Express SGH-I437
| imagecaption = Samsung Galaxy Express SGH-I437
| releaseyear = 2012
| releaseyear = 2012
| originalsoftware = Android 4.0 - 4.1
| originalsoftware = Android
| chipset = Qualcomm MSM8960 Snapdragon S4 Plus
| originalversion = 4.0
| extendedversion = 4.1
| chipset = Qualcomm Snapdragon S4 Plus (MSM8960)
| cpu = Dual-core 1.5 GHz Krait
| cpu = Dual-core 1.5 GHz Krait
| gpu = Adreno 225
| gpu = Adreno 225
Line 14: Line 16:
| memory = 1 GB
| memory = 1 GB
| architecture = armv7
| architecture = armv7
| type = handset
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) -->
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) -->
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment -->
| status_usbnet = Y<!-- USB networking does work? then put Y here and delete this comment -->
| status_flashing = Y<!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. -->
| status_flashing = Y<!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. -->
| status_touch = Y<!-- Touch screen is working? You can also answer these questions with P for partially. -->
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. -->
| status_screen = P<!-- The display is working? -->
| status_screen = <!-- The display is working? -->
| status_wifi = <!-- Wireless network works? -->
| status_wifi = <!-- Wireless network works? -->
| status_xwayland = Y<!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? -->
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? -->
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? -->
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? -->
| status_mainline = Y
| status_mainline = Y
Line 34: Line 37:
| status_calls = <!-- Talking to other people over the cellular network. -->
| status_calls = <!-- Talking to other people over the cellular network. -->
| booting = yes <!-- The device is booting at all, can be yes/no *IMPORTANT* -->
| booting = yes <!-- The device is booting at all, can be yes/no *IMPORTANT* -->
| pmoskernel = 3.4.106
| pmoskernel = 6.5_rc2


<!-- you can also use these lines if you need to:
<!-- you can also use these lines if you need to:
Line 55: Line 58:
{{Device owners}}
{{Device owners}}


== How to enter download/flash mode ==
== How to install ==
Start powered off. From there, hold the {{button|Volume Down}} button, {{button|Home}} button, and {{button|Power}} button. Once the phone buzzes, release the {{button|Power}} button.
Start powered off. From there, hold the {{button|Volume Down}} button, {{button|Home}} button, and {{button|Power}} button. Once the phone buzzes, release the {{button|Power}} button.


There is also a way to enter Odin download mode without the 3 button combo ([https://forum.xda-developers.com/t/howto-ref-get-download-mode-without-3-button-combo-using-homemade-jig.819551/ link]). Instead of the resistor in this [https://wiki.postmarketos.org/wiki/Serial_debugging:Cable_schematics schematic] being 150k or 619k, make it around 300k (which you could easily do with two 150k or 619k resistors). Will be useful if accidentally soft bricking device.
There is also a way to enter Odin download mode without the 3 button combo ([https://forum.xda-developers.com/t/howto-ref-get-download-mode-without-3-button-combo-using-homemade-jig.819551/ link]). Instead of the resistor in this [https://wiki.postmarketos.org/wiki/Serial_debugging:Cable_schematics schematic] being 150k or 619k, make it around 300k (which you could easily do with two 150k or 619k resistors). Will be useful if accidentally soft bricking device.


== Installation ==
* Enter Flash Mode
* Flash pmOS using pmbootstrap flasher flash_rootfs
* Flash kernel using pmbootstrap flasher flash_kernel


== Current Known Problems ==
Once in odin mode, flash lk2nd onto the device: https://github.com/msm8916-mainline/lk2nd;
* Red Tint
currently you will have to build lk2nd and have to modify the bundle.dts where the other msm8960 devices exist just so the buttons work (Changes have been - or will soon be - submitted in a PR. Once it's merged, you don't have to do anything).
* Power button doesn't do anything
* Screen on 24/7
* Only works on Weston


== Mainline Progress ==
Once lk2nd is built (or downloaded once the PR has been merged), simply do:
Mainline progress can be found here: https://gitlab.com/LogicalErzor/mainline-kernel-pmos-aports


Also look at the SoC page for general tips and tricks: https://wiki.postmarketos.org/wiki/Qualcomm_Snapdragon_S4_Plus_(MSM8960)
heimdall flash --BOOT lk2nd-msm8960.img


== Smallest CAF Kernel ==
Building and flashing pmOS:
Methodology: https://gitlab.com/LogicalErzor/find-closest-caf-tag


Samsung Provided Kernel: https://gitlab.com/LogicalErzor/samsung-downstream-kernel


In order to find the smallest diff, I iterated over every tag. It seems like M8960AAAAANLYA106305 in the CAF kernel has the smallest size. Here is a list of the other tags:


Bytes    Tag
faster mainline builds... envkernel.sh doesn't behave nice, so this is 3 separate commands. this basically tells us what configs we are missing in our device.config file in linux-next so that we can add it


30956762 M8960AAAAANLYA106305.diff
pmbootstrap -y zap -a && \
cd ~/linux/ && \
source ../pmbootstrap/helpers/envkernel.sh


31025719 M8960AAAAANLYA113111.diff
pmbootstrap checksum device-samsung-expressatt linux-next && \
pmbootstrap kconfig edit linux-next --arch armv7 && \
sudo cp ~/pmaports/cache_git/pmaports/device/testing/linux-next/config-generic-trailblazer.armv7 ~/linux/arch/arm/configs/expressatt_defconfig && \
make expressatt_defconfig && \
make -j 20 && \
pmbootstrap build --envkernel linux-next && \
deactivate


31025719 M8960AAAAANLYA113110.diff
sudo cp ~/linux/.output/.config .config && \
make LLVM=1 ARCH=arm -j $(nproc) savedefconfig && \
sudo cp ~/linux/defconfig ~/pmaports/cache_git/pmaports/device/testing/linux-next/defconfig && \
echo "=======================================" && \
while IFS= read -r line; do grep -Fxq "$line" ~/linux/arch/arm/configs/qcom_defconfig ~/pmaports/cache_git/pmaports/device/testing/linux-next/*.config || echo "$line"; done < ~/pmaports/cache_git/pmaports/device/testing/linux-next/defconfig && \
echo "=======================================" && \
sudo rm ~/linux/.output/.config ~/linux/.config ~/linux/defconfig && \
pmbootstrap build --force device-samsung-expressatt && \
pmbootstrap initfs hook_add debug-shell && \
yes | pmbootstrap install && \
pmbootstrap export && \
cd /tmp/postmarketOS-export/ && \
fastboot flash userdata samsung-expressatt.img


31035608 M8960AAAAANLYA1063.diff
Finally remove the battery, plug it back in and watch the UART logs! The device doesn't boot to console yet, but close to it. Seems like configs are missing so I'm working to add them back in.


31039011 M8960AAAAANLYA113109.diff
== Mainlining blocker ==


31039550 M8960AAAAANLYA113108.diff
main problem here is pastebin.com/qGbfFGUt


31040167 M8960AAAAANLYA113106.diff
small rw’s are fine, but big ones hang the system: pastebin.com/Tkx7Bw0q


31041864 M8960AAAAANLYA113112.diff
dont know how to debug the mmc here


31480245 M8960AAAAANLYA113101.diff
== UART ==
i have UART working. some links:


31953507 M8960AAAAANLYA196143004.diff
# https://wiki.postmarketos.org/wiki/Qualcomm_Snapdragon_S4_Plus_(MSM8960)#UART
# https://wiki.postmarketos.org/wiki/Serial_debugging/Cable_schematics#Raspberry_Pi
# https://gitlab.postmarketos.org/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-expressatt
# https://gitlab.postmarketos.org/postmarketOS/pmaports/-/tree/master/device/testing/linux-postmarketos-qcom-msm8960
## https://gitlab.postmarketos.org/postmarketOS/pmaports/-/blob/master/device/testing/linux-postmarketos-qcom-msm8960/config-postmarketos-qcom-msm8960.armv7#L488
# https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/qcom/qcom-msm8960-samsung-expressatt.dts


31953507 M8960AAAAANLYA196143003.diff
== Useful Links (?) ==
 
* https://www.infineon.com/dgdl/Infineon-CYUSB301X_CYUSB201X_EZ-USB_FX3_SUPERSPEED_USB_CONTROLLER-DataSheet-v01_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0eca1e7442aa
31965445 M8960AAAAANLYA196143007.diff
* https://arxiv.org/abs/1707.05082
 
* https://www.infineon.com/dgdl/Infineon-CY7C65223D-32LTXI-DataSheet-v01_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0eea2d36730a
31982898 M8960AAAAANLYA196143023.diff
* https://www.infineon.com/dgdl/Infineon-CYUSB301X_CYUSB201X_EZ-USB_FX3_SUPERSPEED_USB_CONTROLLER-DataSheet-v21_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0eca1e7442aa
 
* https://www.infineon.com/dgdl/Infineon-CYUSBS236_User_Guide-UserManual-v01_00-EN.pdf?fileId=8ac78c8c7d0d8da4017d0ef8d1be0e5a
32368194 M8960AAAAANLYA196143041.diff
 
32373824 M8960AAAAANLYA196143058.diff
 
34484916 M8960AAAAANLYA153617.diff
 
34487048 M8960AAAAANLYA153618.diff
 
34537042 M8960AAAAANLYA1542.diff
 
34541979 M8960AAAAANLYA153619.diff
 
34551177 M8960AAAAANLYA1005304.diff
 
34552609 M8960AAAAANLYA10529500.diff
 
38588692 M8960AAAAANLYA1731.diff
 
38693998 M8960AAAAANLYA1732.diff
 
38767719 M8960AAAAANLYA1733.diff
 
38794188 M8960AAAAANLYA1519249.diff
 
38794194 M8960AAAAANLYA1519245.diff
 
38798325 M8960AAAAANLYA1519250.diff
 
38896430 M8960AAAAANLYA1519282.diff
 
38933280 M8960AAAAANLYA1519291.diff
 
38933280 M8960AAAAANLGA1519291.diff
 
38947675 M8960AAAAANLYA1519306.diff
 
38947675 M8960AAAAANLGA1519306.diff
 
38979449 M8960AAAAANLYA1519328.diff
 
38991275 M8960AAAAANLYA1519349.diff
 
38991486 M8960AAAAANLYA1519352.diff
 
39061477 M8960AAAAANLYA1519354.diff
 
39088362 M8960AAAAANLYA1519355.diff
 
167005071 M8960AAAAANLYA1731J.diff
 
167056574 M8960AAAAANLYA17301J.diff
 
167080764 M8960AAAAANLYA1732J.diff
 
167137801 M8960AAAAANLYA17321J.diff
 
167227879 M8960AAAAANLYA1734J.diff
 
167236730 M8960AAAAANLYA17341J.diff
 
167242176 M8960AAAAANLYA1737J.diff
 
167243958 M8960AAAAANLYA17371J.diff
 
167246676 M8960AAAAANLYA1738J.diff
 
167257565 M8960AAAAANLYA1736J.diff
 
167267144 M8960AAAAANLYA20231002.diff
 
167304611 M8960AAAAANLYA2003B.diff
 
167315077 M8960AAAAANLYA17381J.diff
 
167321926 M8960AAAAANLYA17382J.diff
 
167356062 M8960AAAAANLYA20203.diff
 
167375473 M8960AAAAANLYA1740J.diff
 
167406618 M8960AAAAANLYA1741J.diff
 
167421603 M8960AAAAANLYA20230.diff
 
167428326 M8960AAAAANLYA1742J.diff
 
167430609 M8960AAAAANLYA20231.diff
 
167430609 M8960AAAAANLYA20041011.diff
 
167445120 M8960AAAAAYA20041014.diff
 
167917864 M8960AAAAANLYA1743J.diff
 
167926394 M8960AAAAANLYA20233.diff
 
167939479 M8960AAAAANLYA20232.diff
 
167942606 M8960AAAAANLYA1744J.diff
 
167944324 M8960AAAAANLYA1745J.diff
 
167966086 M8960AAAAANLYA2016183.diff
 
167981964 M8960AAAAANLYA20234.diff
 
168294177 M8960AAAAANLYA2004.diff
 
168699480 M8960AAAAANLYA0081.diff
 
168746572 M8960AAAAANLYA2005.diff
 
168953251 M8960AAAAANLYA2301.diff
 
169038578 A8064AAAAANLYA1621C.diff
 
169038698 M8960AAAAANLYA2214006.diff
 
169040616 M8960AAAAANLYA2220.diff
 
169043171 M8960AAAAANLYA2207.diff
 
169045252 M8960AAAAANLYA2021.diff
 
169066011 M8960AAAAANLYA2022.diff
 
169069651 M8960AAAAANLYA2221.diff
 
169097918 M8960AAAAANLYA2023.diff
 
169101498 M8960AAAAANLYA2222A.diff
 
169114793 M8960AAAAANLYA2217046.diff
 
169116600 M8960AAAAANLYA2223.diff
 
169123513 M8960AAAAANLYA2217057.diff
 
169124402 M8960AAAAANLYA2243004.diff
 
169124402 M8960AAAAANLYA2243002.diff
 
169132682 M8960AAAAANLYA2030.diff
 
169158406 M8960AAAAANLYA2243006.diff
 
169182936 M8960AAAAANLYA2225.diff
 
169206593 M8960AAAAANLYA2031.diff
 
169208143 M8960AAAAANLYA2217096.diff
 
169217292 M8960AAAAANLYA2302.diff
 
169291364 M8960AAAAANLYA2217130.diff
 
169291807 M8960AAAAANLYA2217137.diff
 
169292004 M8960AAAAANLYA2217131.diff
 
169293435 M8960AAAAANLYA20601.diff
 
169334860 M8960AAAAANLYA20602.diff
 
169449005 M8960AAAAANLYA2303.diff
 
169651843 M8960AAAAANLYA2304.diff
 
169748987 M8960AAAAANLYA2540092.diff
 
169840243 M8960AAAAANLYA2060301.diff
 
169840243 M8960AAAAANLYA203301.diff
 
169875694 M8960AAAAANLYA2217182.diff
 
169880950 M8960AAAAANLYA20604.diff
 
169885317 M8960AAAAANLYA2217202.diff
 
169885317 M8960AAAAANLYA20605.diff
 
169890380 M8960AAAAANLYA2034.diff
 
169901458 M8960AAAAANLYA2217216.diff
 
169904329 M8960AAAAANLYA2217228.diff
 
169904329 M8960AAAAANLYA2035.diff
 
169919535 M8960AAAAANLYA2217239.diff
 
169955313 M8960AAAAANLYA2217260.diff
 
169998310 M8960AAAAANLYA2217313.diff
 
170492975 M8960AAAAANLYA2320.diff
 
170665582 M8960AAAAANLYA2321.diff
 
170785605 M8960AAAAANLYA2330.diff
 
170933550 M8960AAAAANLYA2331.diff
 
171348064 M8960AAAAANLYA2540324.diff
 
171366998 M8960AAAAANLYA2540332.diff
 
171433279 M8960AAAAANLYA2540367.diff
 
171489586 M8960AAAAANLYA25040389.diff
 
171502177 M8960AAAAANLYA25040417.diff
 
171524282 M8960AAAAANLYA25040463.diff
 
171526365 M8930AAAAANLYA2540482.diff
 
171526365 M8930AAAAANLYA25040482.diff
 
171551481 M8960AAAAANLYA2540513.diff
 
171581631 A8064AAAAANLYA25040541.diff
 
171582007 A8064AAAAANLYA25040543.diff
 
171591299 A8064AAAAANLYA25040564.diff
 
171667068 M8960AAAAANLYA26109002.diff
 
171725185 M8960AAAAANLYA26109018.diff
 
171870210 M8960AAAAANLYA26109048.diff
 
171874889 M8960AAAAANLYA26144002.diff
 
171875416 M8960AAAAANLYA26144005.diff
 
171891089 M8960AAAAANLYA26109082.diff
 
171917023 M8960AAAAANLYA26109102.diff
 
171921467 M8960AAAAANLYA26109109.diff
 
173554777 LNX.LA.2.7.c1-00300-8960.0.diff
 
173690710 LNX.LA.2.7.c1-01100-8960.0.diff
 
174961443 LNX.LA.2.7-01110-8960.0.diff
 
174967998 M8960AAAAANLYA26109130.diff
 
174981180 LNX.LA.2.7-01210-8960.0.diff
 
175123235 LNX.LA.2.7-01910-8960.0.diff
 
175135636 LNX.LA.2.7-02410-8960.0.diff
 
175135636 LNX.LA.2.7-02110-8960.0.diff
 
175268611 LNX.LA.2.7-02710-8960.0.diff
 
175283114 LNX.LA.2.7-02910-8960.0.diff
 
175288025 LNX.LA.2.7-03110-8960.0.diff
 
175299890 LNX.LA.2.7-02810-8960.0.diff
 
175822367 LNX.LA.2.7-04010-8960.0.diff
 
175822367 LNX.LA.2.7-03910-8960.0.diff
 
175835506 LNX.LA.2.7-04310-8960.0.diff
 
175841371 LNX.LA.2.7-04410-8960.0.diff
 
175868763 LNX.LA.2.7-04710-8960.0.diff
 
175869088 LNX.LA.2.7.4-00500-8960.0.diff
 
175869088 LNX.LA.2.7-05010-8960.0.diff
 
175871397 LNX.LA.2.7.3-02300-8064.0.diff
 
175872611 LNX.LA.2.7.4-01200-8960.0.diff
 
175873265 LNX.LA.2.7.4-01800-8960.0.diff
 
175873265 LNX.LA.2.7.4-01600-8960.0.diff
 
175873622 LNX.LA.2.7.4-02300-8960.0.diff
 
175873803 LNX.LA.2.7.4-02600-8960.0.diff
 
175875115 LNX.LA.2.7-05210-8960.0.diff
 
175884826 LNX.LA.2.7.4-06900-8960.0.diff
 
175884826 LNX.LA.2.7.4-06200-8960.0.diff
 
175884826 LNX.LA.2.7.4-05800-8960.0.diff
 
175884826 LNX.LA.2.7.4-05400-8960.0.diff
 
175884826 LNX.LA.2.7.4-05300-8960.0.diff
 
175889958 LNX.LA.2.7.4-07500-8960.0.diff
 
175890448 LNX.LA.2.7.4-08000-8960.0.diff
 
175890448 LNX.LA.2.7.4-07800-8960.0.diff
 
175890615 LNX.LA.2.7.4-08400-8960.0.diff
 
175902683 LNX.LA.2.7.4-09900-8960.0.diff
 
175902683 LNX.LA.2.7.4-08900-8960.0.diff
 
175902683 LNX.LA.2.7.4-08700-8960.0.diff
 
175904764 LNX.LA.2.7-06310-8960.0.diff
 
175905410 LNX.LA.2.7.4-11000-8960.0.diff
 
175905410 LNX.LA.2.7.4-10500-8960.0.diff
 
175919977 LNX.LA.2.7.4-12600-8960.0.diff
 
175919987 LNX.LA.2.7.4-11500-8960.0.diff
 
175919987 LNX.LA.2.7.4-11200-8960.0.diff
 
175920460 LNX.LA.2.7.4-13300-8960.0.diff
 
175922367 LNX.LA.2.7.4-13700-8960.0.diff
 
175929531 LNX.LA.2.7.3-02700-8064.0.diff
 
175945505 LA.AF.1.1-01110-8930.0.diff
 
175945505 LA.AF.1.1-01110-8064.0.diff
 
175968450 LA.AF.1.1-01210-8930.0.diff
 
175968450 LA.AF.1.1-01210-8064.0.diff
 
175988912 LA.AF.1.1-01410-8930.0.diff
 
175988912 LA.AF.1.1-01410-8064.0.diff
 
175988913 LA.AF.1.1-01310-8930.0.diff
 
175988913 LA.AF.1.1-01310-8064.0.diff
 
175990062 LA.AF.1.1-01610-8930.0.diff
 
175990062 LA.AF.1.1-01610-8064.0.diff
 
175997823 LA.AF.1.1-01910-8930.0.diff
 
175997823 LA.AF.1.1-01910-8064.0.diff
 
176001416 LNX.LA.2.7.3-04200-8064.0.diff
 
176001443 LNX.LA.2.7.3-04500-8064.0.diff
 
176003945 LA.AF.1.1-01810-8064.0.diff
 
176004776 LA.AF.1.1-02110-8064.0.diff
 
176004776 LA.AF.1.1-02010-8930.0.diff
 
176004776 LA.AF.1.1-02010-8064.0.diff
 
176008442 LA.AF.1.1-02510-8064.0.diff
 
176008872 LA.AF.1.1-02710-8064.0.diff
 
176009192 LA.AF.1.1.c1-01700-8960.0.diff
 
176010339 LA.AF.1.1-02810-8064.0.diff
 
176103864 LNX.LA.2.7.3-06800-8064.0.diff
 
176112206 LNX.LA.2.7.3-07000-8064.0.diff
 
176112339 LNX.LA.2.7.3-08100-8064.0.diff
 
176115747 LNX.LA.2.7.3-09000-8064.0.diff
 
176154327 LNX.LA.2.7.3-10400-8064.0.diff
 
176163021 LNX.LA.2.7.3-11400-8064.0.diff
 
176214844 LNX.LA.2.7.3-11900-8064.0.diff
 
176215334 LNX.LA.2.7.3-12300-8064.0.diff
 
176215334 LNX.LA.2.7.3-12100-8064.0.diff
 
176219954 LNX.LA.2.7.3-14600-8064.0.diff
 
176220879 LNX.LA.2.7.3-15200-8064.0.diff
 
176244255 LNX.LA.2.7.3-18200-8064.0.diff
 
176278766 LNX.LA.2.7.3-20100-8064.0.diff
 
176341370 LNX.LA.2.7.3-22200-8064.0.diff
 
176360483 LA.AF.1.1.1-01300-8064.0.diff
 
176384488 LNX.LA.2.7.3-24000-8064.0.diff
 
176443505 LA.AF.1.1.1-05000-8064.0.diff
 
176485702 LA.AF.1.1.1-07000-8064.0.diff
 
176490624 LA.AF.1.1.1-00610-8064.0.diff
 
176545164 LA.AF.1.1.1-09400-8064.0.diff
 
176547684 LA.AF.1.1.1-10500-8064.0.diff
 
176663858 LA.AF.1.1.1-13500-8064.0.diff
 
176700375 LA.AF.1.1.1-16300-8064.0.diff
 
176747717 LA.AF.1.1.1-21300-8064.0.diff
 
176793530 LA.AF.1.1.1-02910-8064.0.diff
 
176837194 LA.AF.1.1.1-03210-8064.0.diff
 
176856168 LA.AF.1.1.1-03710-8064.0.diff
 
176856168 LA.AF.1.1.1-03610-8064.0.diff
 
176856168 LA.AF.1.1.1-03510-8064.0.diff
 
180460867 LA.AF.2.1-01210-8064.0.diff
 
180466471 LA.AF.1.2.1-01600-8064.0.diff
 
180466471 LA.AF.1.2.1-00510-8064.0.diff
 
180485274 LA.AF.1.2.1-01210-8064.0.diff
 
180514594 LA.AF.1.2.1-01510-8064.0.diff
 
180553104 LA.AF.1.2.1-02310-8064.0.diff
 
180597734 LA.AF.1.2.1-02710-8064.0.diff
 
180609538 LA.AF.1.2.1-02910-8064.0.diff
 
180609674 LA.AF.1.2.1-03210-8064.0.diff
 
180615697 LA.AF.1.2.1-03710-8064.0.diff
 
180621909 LA.AF.1.2.1-04310-8064.0.diff
 
180647394 LA.AF.1.2.1-04610-8064.0.diff
 
180677386 LA.AF.1.2.1-04910-8064.0.diff
 
180696013 LA.AF.1.2.1-05010-8064.0.diff
 
180698520 LA.AF.1.2.1-05210-8064.0.diff
 
180702491 LA.AF.1.2.1-05310-8064.0.diff
 
180741858 LA.AF.1.2.1-05410-8064.0.diff
 
180763362 LA.AF.1.2.1-05510-8064.0.diff
 
180768986 LA.AF.1.2.1-05610-8064.0.diff
 
180772469 LA.AF.1.2.1-05710-8064.0.diff
 
180772947 LA.AF.1.2.1-05810-8064.0.diff
 
180773081 LA.AF.1.2.1-06110-8064.0.diff
 
180775185 LA.AF.1.2.1-06210-8064.0.diff
 
180777097 LA.AF.1.2.1-06310-8064.0.diff
 
180786367 LA.AF.1.2.1-06610-8064.0.diff
 
180787062 LA.AF.1.2.2-00700-8064.0.diff
 
180797131 LA.AF.1.2.1-06910-8064.0.diff
 
180797131 LA.AF.1.2.1-06710-8064.0.diff
 
180813369 LA.AF.1.2.1-07010-8064.0.diff
 
180814563 LA.AF.1.2.1-07210-8064.0.diff
 
180839671 LA.AF.1.2.1-07310-8064.0.diff
 
180841094 LA.AF.1.2.1-07410-8064.0.diff
 
180842295 LA.AF.1.2.1-07510-8064.0.diff
 
180843587 LA.AF.1.2.1-07610-8064.0.diff
 
180846475 LA.AF.1.2.1-08210-8064.0.diff
 
180846929 LA.AF.1.2.1-08310-8064.0.diff
 
180847708 LA.AF.1.2.1-08410-8064.0.diff


== See also ==
== See also ==
* [https://www.gsmarena.com/samsung_galaxy_express_i437-5018.php GSMArena]
* [https://www.gsmarena.com/samsung_galaxy_express_i437-5018.php GSMArena]
* {{Device package|samsung-expressatt}}
* {{Device package|samsung-expressatt}}
* {{Kernel package|samsung-expressatt}}
* {{Kernel package|postmarketos-qcom-msm8960}}
* [https://wiki.postmarketos.org/wiki/MSM8960_Mainlining MSM8960 Mainlining]

Latest revision as of 17:32, 5 February 2025

Samsung Galaxy Express SGH-I437
Samsung Galaxy Express SGH-I437
Samsung Galaxy Express SGH-I437
Manufacturer Samsung
Name Galaxy Express SGH-I437
Codename samsung-expressatt
Released 2012
Type handset
Hardware
Chipset Qualcomm Snapdragon S4 Plus (MSM8960)
CPU Dual-core 1.5 GHz Krait
GPU Adreno 225
Display 480x800 AMOLED
Storage 8 GB
Memory 1 GB
Architecture armv7
Software
Original software Android
Original version 4.0
Extended version 4.1
postmarketOS
Category testing
Pre-built images no
Mainline yes
postmarketOS kernel 6.5_rc2
Features
Flashing
Works
USB Networking
Works
Internal storage
No data
SD card
No data
Battery
No data
Screen
No data
Touchscreen
No data
Multimedia
3D Acceleration
No data
Audio
No data
Camera
No data
Camera Flash
No data
Connectivity
WiFi
No data
Bluetooth
No data
GPS
No data
NFC
No data
Modem
Calls
No data
SMS
No data
Mobile data
No data
Miscellaneous
FDE
No data
USB OTG
No data
HDMI/DP
No data
Sensors
Accelerometer
No data
Magnetometer
No data
Ambient Light
No data
Proximity
No data
Hall Effect
No data
Haptics
No data
Barometer
No data


Contributors

LogicalErzor

Maintainer(s)

LogicalErzor

Users owning this device


How to install

Start powered off. From there, hold the Volume Down button, Home button, and Power button. Once the phone buzzes, release the Power button.

There is also a way to enter Odin download mode without the 3 button combo (link). Instead of the resistor in this schematic being 150k or 619k, make it around 300k (which you could easily do with two 150k or 619k resistors). Will be useful if accidentally soft bricking device.


Once in odin mode, flash lk2nd onto the device: https://github.com/msm8916-mainline/lk2nd; currently you will have to build lk2nd and have to modify the bundle.dts where the other msm8960 devices exist just so the buttons work (Changes have been - or will soon be - submitted in a PR. Once it's merged, you don't have to do anything).

Once lk2nd is built (or downloaded once the PR has been merged), simply do:

heimdall flash --BOOT lk2nd-msm8960.img

Building and flashing pmOS:


faster mainline builds... envkernel.sh doesn't behave nice, so this is 3 separate commands. this basically tells us what configs we are missing in our device.config file in linux-next so that we can add it

pmbootstrap -y zap -a && \
cd ~/linux/ && \
source ../pmbootstrap/helpers/envkernel.sh
pmbootstrap checksum device-samsung-expressatt linux-next && \
pmbootstrap kconfig edit linux-next --arch armv7 && \
sudo cp ~/pmaports/cache_git/pmaports/device/testing/linux-next/config-generic-trailblazer.armv7 ~/linux/arch/arm/configs/expressatt_defconfig && \
make expressatt_defconfig && \
make -j 20 && \
pmbootstrap build --envkernel linux-next && \
deactivate
sudo cp ~/linux/.output/.config .config && \
make LLVM=1 ARCH=arm -j $(nproc) savedefconfig && \
sudo cp ~/linux/defconfig ~/pmaports/cache_git/pmaports/device/testing/linux-next/defconfig && \
echo "=======================================" && \
while IFS= read -r line; do grep -Fxq "$line" ~/linux/arch/arm/configs/qcom_defconfig ~/pmaports/cache_git/pmaports/device/testing/linux-next/*.config || echo "$line"; done < ~/pmaports/cache_git/pmaports/device/testing/linux-next/defconfig && \
echo "=======================================" && \
sudo rm ~/linux/.output/.config ~/linux/.config ~/linux/defconfig && \
pmbootstrap build --force device-samsung-expressatt && \
pmbootstrap initfs hook_add debug-shell && \
yes | pmbootstrap install && \
pmbootstrap export && \
cd /tmp/postmarketOS-export/ && \
fastboot flash userdata samsung-expressatt.img

Finally remove the battery, plug it back in and watch the UART logs! The device doesn't boot to console yet, but close to it. Seems like configs are missing so I'm working to add them back in.

Mainlining blocker

main problem here is pastebin.com/qGbfFGUt

small rw’s are fine, but big ones hang the system: pastebin.com/Tkx7Bw0q

dont know how to debug the mmc here

UART

i have UART working. some links:

  1. https://wiki.postmarketos.org/wiki/Qualcomm_Snapdragon_S4_Plus_(MSM8960)#UART
  2. https://wiki.postmarketos.org/wiki/Serial_debugging/Cable_schematics#Raspberry_Pi
  3. https://gitlab.postmarketos.org/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-expressatt
  4. https://gitlab.postmarketos.org/postmarketOS/pmaports/-/tree/master/device/testing/linux-postmarketos-qcom-msm8960
    1. https://gitlab.postmarketos.org/postmarketOS/pmaports/-/blob/master/device/testing/linux-postmarketos-qcom-msm8960/config-postmarketos-qcom-msm8960.armv7#L488
  5. https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/qcom/qcom-msm8960-samsung-expressatt.dts

Useful Links (?)

See also