Coder Social home page Coder Social logo

Comments (25)

duhmojo avatar duhmojo commented on June 20, 2024

FYI, the SGH-I337M source appears to have all the same wl_cfg80211.c items in the same place as the S3's kernel source, so that's good news. I'll keep plugging away and try to build and test a new kernel version.

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

Well I've been all over the place trying to get a kernel building environment ready to go. This tutorial here http://forum.xda-developers.com/showthread.php?t=1685382 was very promising (I'm using Fedora, I could switch to Ubtuntu and will probably have to if I'm going to attempt some of the other guides) but I can't seem to extract the ramdisk from my boot.img.

$ cd ~/android/ramdisk_extract && BASE="0x$(od -A n -h -j 34 -N 2 boot.img|sed 's/ //g')0000" && echo $BASE
0x00000000

I''m finding all the guides and information on compiling your own kernel are knee deep. You have to be far enough along to catch the suggestions people are offering, that only really help if you're on the right track to compiling a kernel in the first place. Could you suggest a general Android kernel guide that helped you get started?

from android-manet-manager.

jrobble avatar jrobble commented on June 20, 2024

Note that the _defconfig file is specific to your device. Look for:

CONFIG_WIRELESS_EXT=y
CONFIG_WEXT_CORE=y
CONFIG_WEXT_PROC=y

CONFIG_WEXT_PRIV=y
CONFIG_CFG80211=y
CONFIG_CFG80211_WEXT=y

Which would indicate that wireless extensions (wext) is supported.

To be honest, I cobbled together my own Ubuntu VM for kernel development. I
learned everything by piecing together various bits from XDA and other
forums. The best thing I can do for you is attach my GS3 kernel build
script. I hope it helps. Essentially, I go on on the ClockworkMod Recovery
site, look for a pre-package .zip for my device, and then use the contents
of that .zip (usually based on the AnyKernel structure) as a template.

  • Jeff

On Thu, Dec 19, 2013 at 2:19 PM, duhmojo [email protected] wrote:

Well I've been all over the place trying to get a kernel building
environment ready to go. This tutorial here
http://forum.xda-developers.com/showthread.php?t=1685382 was very
promising (I'm using Fedora, I could switch to Ubtuntu and will probably
have to if I'm going to attempt some of the other guides) but I can't seem
to extract the ramdisk from my boot.img.

$ cd ~/android/ramdisk_extract && BASE="0x$(od -A n -h -j 34 -N 2
boot.img|sed 's/ //g')0000" && echo $BASE
0x00000000

I''m finding all the guides and information on compiling your own kernel
are knee deep. You have to be far enough along to catch the suggestions
people are offering, that only really help if you're on the right track to
compiling a kernel in the first place. Could you suggest a general Android
kernel guide that helped you get started?


Reply to this email directly or view it on GitHubhttps://github.com//issues/18#issuecomment-30957330
.

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

Hey. So I managed to build my own SGH-I337m kernel. I've built custom Linux kernels in the past (during a time PC computing performance benefited from a stripping down kernel) but when I started piecing together the best way to do it for Android, all of that experience only because apparent when I finally got to make menuconfig. :)

The Samsung source for the SGH-I337m doesn't appear to include an obvious _defconfig, and I haven't been able to locate anything information online about where it could be. So, I simply pulled my device's /proc/config.gz and used it as .config for menuconfig. This also helps with determining if the running device has WEXT settings.

To that point I only see:
CONFIG_WIRELESS=y
CONFIG_WEXT_CORE=y
CONFIG_WEXT_PROC=y

CONFIG_CFG80211=y
CONFIG_CFG80211_WEXT=y

I picked everything that included WEXT, and ones that might overlap with yours. The kernel is built with these settings, I'm just trying to actually get the thing installed onto my device.

You did answer a big Q for me though. I was trying to work with a CWM backed up boot.img that I could inject my kernel into, but AnyKernel was an option I noted. I'll take a look at it now.

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

Hi. Where did you get your AnyKernel from, and what changes did you make to it? Koush's AnyKernel has a different (likely older?) updater-script than the version you have in myupdate-galaxynexus.zip.

https://github.com/monk-dot/SPAN/blob/master/kernels/Samsung%20Galaxy%20Nexus/myupdate-galaxynexus.zip
https://github.com/koush/AnyKernel/blob/master/META-INF/com/google/android/updater-script

You've got busybox and the mount() is of the 3 arg variety, not 4, and when I try installing my kernel it fails with something like this:

-- Installing: /sdcard/update.zip
Finding update package...
Opening update package...
Installing update...
AnyKernel Updater by Koush.
Extracting System Files...
mount() expects 4 args, got 3
E:Error in /sdcard/update.zip
(Status 7)
Installation aborted.

There are some other differences. You've got the .ko's in /system/modules/, while the regular AnyKernel (assuming it's official or maintained) puts it all in /system/lib/modules/

So I tried simply changing mount to include "ext4":

mount("ext4", "MTD", "system", "/system");

Zipped it up and used RomManager to try flashing it. I didn't see any errors. It seemed to indicate that the kernel was extracted and installed. After boot, I first checked the About for any indication on the kernel version or number but it isn't apparent that anything changed. I also tried "./adhoc start 1" just for kicks but no complaints and no adhoc.

I'm going to try using your version of AnyKernel from myupdate-galaxynexus.zip and see how far I get.

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

Ok, tried using your myupdate-galaxynexus.zip as the basis for my AnyKernel, but I think there are some difference with it and my device (the S4, SGH-I337m). My bcmdhd/wl_cfg80211.c and matching Makefile have the changes needed to permit adhoc mode, and my build script copies over all built .ko modules to my AnyKernel /system/lib/modules/ directory. I've also tried /system/modules/ as you have it in myupdate-galaxynexus.zip, but when I shell into my device, all the modules are located under /system/lib/modules/

shell@android:/ $ ls -al /system/lib/modules/
ls -al /system/lib/modules
...
-rw-r--r-- root root 618364 2013-07-01 17:44 dhd.ko
...

Either way, as you can see above, the date is that of the original dhd.ko, not my newly built and supposedly installed kernel.

I'm flashing it using ClockWorkMod and their RomManager to start the process. I uploaded my AnyKernel and based myupdate-galaxynexus zips here:

https://github.com/duhmojo/clips/blob/master/SGH-I337m/myupdate.zip
https://github.com/duhmojo/clips/blob/master/SGH-I337m/anykernel-myupdate.zip

I don't expect you to take a look. I did just in case. Time to start Googling again... (Thanks for all the help!)

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

Sigh, it seems I'm always a step closer to finding a clue just after I post a Q online. Here's the CWM last_log from the AnyKernel version of my flashable zip where I've set my mount to my S4's block device. (I also referenced this post on spandev for clues: https://groups.google.com/forum/#!msg/spandev/xYQj8ukDZ8M/RNM1aQsAzogJ)

One possibility is I'm flashing from the internal SD and not an external SD card. There's the userdata and cache mount failures. Here's some of the S4's mount list:

/dev/block/mmcblk0p26 /persdata/absolute ext4 rw,seclabel,nosuid,nodev,relatime,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime,errors=panic,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 rw,seclabel,nosuid,nodev,noatime,discard,journal_checksum,journal_async_commit,noauto_da_alloc,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 rw,seclabel,nosuid,nodev,noatime,discard,journal_checksum,journal_async_commit,noauto_da_alloc,errors=panic,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/apnhlos /firmware vfat ro,context=u:object_r:firmware:s0,relatime,uid=1000,gid=1000,fmask=0337,dmask=0227,codepage=cp437,iocharset=iso8859-1,shortname=lower,errors=remount-ro 0 0

Here's the updater-script:

ui_print("AnyKernel Updater by Koush.");
ui_print("Extracting System Files...");
set_progress(1.000000);
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");
package_extract_dir("system", "/system");
unmount("/system");
ui_print("Extracting Kernel files...");
package_extract_dir("kernel", "/tmp");
ui_print("Installing kernel...");
set_perm(0, 0, 0777, "/tmp/dump_image");
set_perm(0, 0, 0777, "/tmp/mkbootimg.sh");
set_perm(0, 0, 0777, "/tmp/mkbootimg");
set_perm(0, 0, 0777, "/tmp/unpackbootimg");
run_program("/tmp/dump_image", "boot", "/tmp/boot.img");
run_program("/tmp/unpackbootimg", "/tmp/boot.img", "/tmp/");
run_program("/tmp/mkbootimg.sh");
write_raw_image("/tmp/cnewboot.img", "boot");

Here's the last_log:

I:Checking for extendedcommand...
I:Running extendedcommand...
Waiting for SD Card to mount (20s)
I:using /data/media for /sdcard.
SD Card mounted...
Verifying SD Card marker...
07aa0e758152c1180289b0be74d21a4a
I:Running script:
I:
run_program("/sbin/cp", "-R", "/cache/recovery", "/tmp/recovery");
ui_print("ROM Manager Version 5.5.3.2");
ui_print("28 December, 2013");
ui_print("Preparing to install ROM...");
run_program("/cache/dowipedalvikcache.sh");
mount("/system");
run_program("/sbin/chmod", "+x", "/tmp/recovery/11-rommanager.sh");
run_program("/tmp/recovery/11-rommanager.sh", "place");
run_program("/sbin/umount", "/system");
assert(install_zip("/sdcard/0/anykernel-myupdate.zip"));

parse returned 0; 0 errors encountered
about to run program [/sbin/cp] with 4 args
ROM Manager Version 5.5.3.2
28 December, 2013
Preparing to install ROM...
about to run program [/cache/dowipedalvikcache.sh] with 1 args
mount: mounting /dev/block/platform/msm_sdcc.1/by-name/userdata on /data failed: Device or resource busy
mount: mounting /dev/block/platform/msm_sdcc.1/by-name/cache on /cache failed: Device or resource busy
mount: can't find /sd-ext in /etc/fstab
umount: can't umount /sd-ext: Invalid argument
run_program: child exited with status 1
about to run program [/sbin/chmod] with 3 args
about to run program [/tmp/recovery/11-rommanager.sh] with 2 args
mount: mounting /dev/block/platform/msm_sdcc.1/by-name/system on /system failed:
Device or resource busy
about to run program [/sbin/umount] with 2 args

-- Installing: /sdcard/0/anykernel-myupdate.zip
Finding update package...
I:Update location: /data/media/0/anykernel-myupdate.zip
Opening update package...
Installing update...
AnyKernel Updater by Koush.
...
minzip: Extracted file "/system/lib/modules/dhd.ko"
...
minzip: Extracted file "/system/lib/modules/vpnclient.ko"
minzip: Extracted file "/tmp/busybox"
minzip: Extracted file "/tmp/dump_image"
minzip: Extracted file "/tmp/mkbootimg"
minzip: Extracted file "/tmp/mkbootimg.sh"
minzip: Extracted file "/tmp/unpackbootimg"
Extracting System Files...minzip: Extracted file "/tmp/zImage"
about to run program [/tmp/dump_image] with 3 args
run_program: child exited with status 255
about to run program [/tmp/unpackbootimg] with 3 args

run_program: child terminated by signal 11
about to run program [/tmp/mkbootimg.sh] with 1 args
cat: can't open '/tmp/boot.img-cmdline': No such file or directory
cat: can't open '/tmp/boot.img-base': No such file or directory
Segmentation fault
run_program: child exited with status 139
script result was [Done!]
Extracting Kernel files...
Installing kernel...
Done!
Install from sdcard complete.

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

So I've worked out a solution.

After going through this whole process, it turns out that Samsung enabled ADHOC on their own in Update1 for the Galaxy S4. This could be the result of them including the latest Broadcom driver, which simply had the ADHOC bit available. The SGH-I337M has 2 kernel source packages available from Samsung: SGH-I337M_JB_Opensource and SGH-I337M_NA_JB_Opensource_Update1. I was working with the prior version originally and when I took a look at the bcmdhd source I noticed that ADHOC was enabled, where the older version did not have it. This would be fine or indifferent news as I know the code change needed to enable ADHOC and my issue is with kernel packaging. However it also meant that other successful ROMs based on the latest Samsung source would have ADHOC enabled already, which is good news.

I decided to give Cyanogenmod a try. In the past I had zero success with a Samsung Tab 7" 2.0 and it. The ADHOC wasn't enabled and I didn't want to attempt building a new kernel at the time. I took a look at the CyanogenMod 10.2 source and bcmdhd had ADHOC enabled. I flashed it to my device, installed ManetManager and started an Adhoc network immediately. No issues that I could see.

I think ManetManager can add officially add support for the Galaxy S4 as long as the latest update is available. Note that I'll only verify that Cyanogen 10.2 works with ManetManager as is. I'm not going to get a chance to let these S4's update OTA and see what happens. If I do I'll let you know.

Thanks.

from android-manet-manager.

jrobble avatar jrobble commented on June 20, 2024

I’m happy to hear that the S4 kernel update package has adhoc enabled and
CyanogenMod 10.2 worked right off the bat. I assume a rooted S4 with the
stock kernel update would also work.

Will the S4 get an OTA update when CyanogenMod is installed?

Please commit your changes to adhoc_edify, and DeviceConfig.java that were
necessary to support the S4. Thanks!

On Tue, Dec 31, 2013 at 12:28 PM, duhmojo [email protected] wrote:

So I've worked out a solution.

After going through this whole process, it turns out that Samsung enabled
ADHOC on their own in Update1 for the Galaxy S4. This could be the result
of them including the latest Broadcom driver, which simply had the ADHOC
bit available. The SGH-I337M has 2 kernel source packages available from
Samsung: SGH-I337M_JB_Opensource and SGH-I337M_NA_JB_Opensource_Update1. I
was working with the prior version originally and when I took a look at the
bcmdhd source I noticed that ADHOC was enabled, where the older version did
not have it. This would be fine or indifferent news as I know the code
change needed to enable ADHOC and my issue is with kernel packaging.
However it also meant that other successful ROMs based on the latest
Samsung source would have ADHOC enabled already, which is good news.

I decided to give Cyanogenmod a try. In the past I had zero success with a
Samsung Tab 7" 2.0 and it. The ADHOC wasn't enabled and I didn't want to
attempt building a new kernel at the time. I took a look at the CyanogenMod
10.2 source and bcmdhd had ADHOC enabled. I flashed it to my device,
installed ManetManager and started an Adhoc network immediately. No issues
that I could see.

I think ManetManager can add officially add support for the Galaxy S4 as
long as the latest update is available. Note that I'll only verify that
Cyanogen 10.2 works with ManetManager as is. I'm not going to get a chance
to let these S4's update OTA and see what happens. If I do I'll let you
know.

Thanks.


Reply to this email directly or view it on GitHubhttps://github.com//issues/18#issuecomment-31403185
.

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

I will. I'd like to do it this weekend, but I haven't had enough time to play with the S4 with CM10.2 and ManetManager yet. For one, twice this week I've powered it on and haven't been able to start the manet. I would then go into Wifi Settings and not be able to enable Wifi. It seemed like there was a timeout. I'd reboot and wifi would work. Later I tried ManetManager again and it worked fine.

I don't know if it's power/sleep related but I'm kind of suspicious. I suspect I'll need to make a change to adhoc_edify for this behavior anyways. I should add the S4 and use the S3 support when testing, but I just haven't had enough time. I might ask another Q or two about diagnosing behavior that adhoc_edify manages per-device.

The S4 with CM should only update from CM sources. Under About Phone, there's a CyanogenMod updates that does OTA. The Samsung OTA shouldn't have an affect.

Thanks again.

from android-manet-manager.

jrobble avatar jrobble commented on June 20, 2024

The ManetManager does reload the Wi-Fi driver, which might cause problems
with the OS Wi-Fi Settings. After a clean reboot, do you sometimes have
problems with the OS Wi-Fi Settings? If so, it's a CM issue.

On Fri, Jan 3, 2014 at 4:14 PM, duhmojo [email protected] wrote:

I will. I'd like to do it this weekend, but I haven't had enough time to
play with the S4 with CM10.2 and ManetManager yet. For one, twice this week
I've powered it on and haven't been able to start the manet. I would then
go into Wifi Settings and not be able to enable Wifi. It seemed like there
was a timeout. I'd reboot and wifi would work. Later I tried ManetManager
again and it worked fine.

I don't know if it's power/sleep related but I'm kind of suspicious. I
suspect I'll need to make a change to adhoc_edify for this behavior
anyways. I should add the S4 and use the S3 support when testing, but I
just haven't had enough time. I might ask another Q or two about diagnosing
behavior that adhoc_edify manages per-device.

The S4 with CM should only update from CM sources. Under About Phone,
there's a CyanogenMod updates that does OTA. The Samsung OTA shouldn't have
an affect.

Thanks again.


Reply to this email directly or view it on GitHubhttps://github.com//issues/18#issuecomment-31554249
.

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

Hey. Just Q. How can I determine the S4's model type so I can add in device specific support? I don't know if it's related to CynaogenMod being installed but only os.version comes back with a non-null response:

Log.d(TAG, "1) " + System.getProperty("os.version"));
Log.d(TAG, "2) " + System.getProperty(android.os.Build.VERSION.SDK));
Log.d(TAG, "3) " + System.getProperty(android.os.Build.DEVICE));
Log.d(TAG, "4) " + System.getProperty(android.os.Build.MODEL));
Log.d(TAG, "5) " + System.getProperty(android.os.Build.TYPE));
Log.d(TAG, "6) " + System.getProperty(Build.MODEL));

Thanks.

from android-manet-manager.

jrobble avatar jrobble commented on June 20, 2024

Your approach is the only way I currently know how to do it. Does anything show up under Settings app -> About Phone -> Model number?

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

The model number is listed as SGH-I337M under About, which is what I expected I could use in DeviceConfig.java. System.getProperty(Build.MODEL)) however returns null. I was calling it from onCreate in my Service, but I tried it from onCreate in my Activity and it still turns up null. Also tried System.getProperty(Build.DEVICE)) and System.getProperty(Build.TYPE)).

Logged an issue with Cyanogen here: https://jira.cyanogenmod.org/browse/CYAN-3255

They were quick with a response the last time I logged an issue.

from android-manet-manager.

jrobble avatar jrobble commented on June 20, 2024

That's strange. I wonder how the Settings app is getting the device info.

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

Maybe its a newer Android thing? I couldn't find anything useful myself. I'm hoping the Cyanogen guys know something. I mean they are an OS company now and seem to support their product.

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

FYI, here's a list of all the System properties on a CM 10.2 S4:

java.vm.specification.vendor -- The Android Project
java.vm.name -- Dalvik
java.vm.specification.version -- 0.9
java.vendor.url -- http://www.android.com/
user.home --
java.ext.dirs --
java.specification.name -- Dalvik Core Library
line.separator --
file.encoding -- UTF-8
java.runtime.version -- 0.9
user.name --
file.separator -- /
java.compiler --
java.library.path -- /vendor/lib:/system/lib
os.version -- 3.4.0-cyanogenmod-g10ced45
android.icu.unicode.version -- 6.2
java.boot.class.path -- /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/telephony-msim.jar
java.vm.specification.name -- Dalvik Virtual Machine Specification
java.version -- 0
android.icu.library.version -- 50.1.1.3
user.region -- US
os.name -- Linux
java.class.path -- .
os.arch -- armv7l
java.io.tmpdir -- /data/data/com.drdc.tec3.tec3m/cache
android.zlib.version -- 1.2.8-linuxfoundation-mods-v1
user.language -- en
java.specification.vendor -- The Android Project
java.vm.version -- 1.6.0
java.vm.vendor -- The Android Project
java.vendor -- The Android Project
http.agent -- Dalvik/1.6.0 (Linux; U; Android 4.3.1; SGH-I337M Build/JLS36I)
android.icu.cldr.version -- 22.1.1
android.openssl.version -- OpenSSL 1.0.1e 11 Feb 2013
path.separator -- :
java.runtime.name -- Android Runtime
java.specification.version -- 0.9
java.home -- /system
java.vm.vendor.url -- http://www.android.com/
user.dir -- /
java.class.version -- 50.0

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

Hey sorry about the wait. It works. I misunderstood and I've added support for the SGH-I337M to my build of MM. I'll check in the simple change soon. I just need time to clone the current Github source first as I've been playing with my adhoc edify and other parts. The S4 appears to be rock stable once its treated similar to the S3, etc...

from android-manet-manager.

jrobble avatar jrobble commented on June 20, 2024

Ah, I should have caught that you were using System.getProperty(). I glazed
over it. Now that the mystery is solved I'm glad to hear that things are
coming along and look forward to the check in.

On Wed, Jan 22, 2014 at 12:11 AM, duhmojo [email protected] wrote:

Hey sorry about the wait. It works. I misunderstood and I've added support
for the SGH-I337M to my build of MM. I'll check in the simple change soon.
I just need time to clone the current Github source first as I've been
playing with my adhoc edify and other parts. The S4 appears to be rock
stable once its treated similar to the S3, etc...


Reply to this email directly or view it on GitHubhttps://github.com//issues/18#issuecomment-32993974
.

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

Sorry about the wait. Pushed my minor change for SGH-I337M: 8a5eb38

Not sure why so many lines are noted as being changed. I cloned a fresh git, made my changes, then commited and pushed it up as is. Hope this helps.

from android-manet-manager.

jrobble avatar jrobble commented on June 20, 2024

It does! I just recently had somebody ask if we support the S4.

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

Hey, just a follow up.

I have a mix of devices, so I actually didn't notice this until today, but I don't think adhoc support in CyanogenMod 10.2 (based on Samsung's SGH-I337M Update1 JB source) is real adhoc.

Here's some test results I had using two Samsung Galaxy S4s and two Lenovo A1s. I also threw in a Windows 7 laptop using Wireshark.

Test1: S4 starts the manet, A1 starts manet, they join and see each other. Good!
Test2: S4 starts manet, S4 starts manet, they don't see each other. Bad!
Test3: A1 starts manet, S4 starts manet, they don't see each other. Bad!
Test4: A1 starts manet, A1 starts manet, they see each other. Good!
Test5: S4 starts manet, Windows laptop connects to manet, Wireshark sees S4's packets. Good!
Test6: A1 starts manet, S4 starts the manet, Windows laptop connects to manet, Wireshark only sees A1's packets. Bad!

I've tried a bunch of those combinations. I even threw in a couple of Nexus7s. Basically the adhoc support in my S4 phones appear to have some kind of wifi tethering behaviour. They all have the same SSID and channel. There is nothing in the logs that's special. I can manually invoke adhoc and even olsrd in the working cases.

It's almost like the S4 insists on being a "master" position in an adhoc network. They refuse to connect to an existing adhoc network running on the same channel with the same SSID.

Have you seen anything like this? Thanks,

from android-manet-manager.

jrobble avatar jrobble commented on June 20, 2024

It's probably related to the BSSID, which dates back the Nexus 7 cell-splitting issue. This post might help you:

https://groups.google.com/d/msg/spandev/oBgAtUHTdTg/vBL8m-NSrFQJ

from android-manet-manager.

duhmojo avatar duhmojo commented on June 20, 2024

It did! What timing. We had to rebuild CynaogenMod 10.2 (I suggest 10.2.1 for other S4 users, there's a boot hang fix that saves you pulling the battery) but I've had a 4 S4 manet going strong. It seems reliable and performs well. Thanks for the pointer! I started that thread that Jorick replied to. :)

from android-manet-manager.

jrobble avatar jrobble commented on June 20, 2024

I <3 the SPAN community.

from android-manet-manager.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.