Hello Everyone,
I'm usually more of a lurker and use XDA to gather info mostly, but I've been trying to get Hnagouts to work with MMS for a while. So my issue is that I am using Softbank Prepaid in Japan, and Softbank for whatever reason is VERY particular about what is allowed on their network. I have a Galaxy S4 GT-I9505 and have been able to get the stock Messaging app to work with the MMS settings by figuring out the backend way of changing the UAProf settings so that Softbank sees it as an iPhone, thus enabling the MMS. (to do this launch ADB (on computer) / Terminal Emulator (on Phone, I believe SU access is needed) then launch command:
Code:
am broadcast -a com.sec.android.app.mmsprovision
Now I've been wanting to integrate with Hangouts for a while, and the settings that are available on hangouts doesn't really let you do anything, worse of all it seems to bypass the settings of the system, so the backend way doesn't work as hangouts seems to report it's own UAProf settings and doesn't seem to let you customize much. Even the custom APN settings seem to miss some files that are normally found.
Recently I have searched and I found that someone had posted about it in Japanese, using their HTC One (M7).
As I am not a programmer and work in very basics with command codes I was hoping someone could help me to make sense of this. I've used Google Chrome to translate the page but I'm still not 100% what needs to be done before I attempt it.
Please note that none of this is my work and it all comes from: http://d.hatena.ne.jp/shimooka/20140212/1392176717
From what I can see he has found a way to change the UAProf settings so that Hangouts reports that it is an iPhone. I can see that it needs to use ADB, but does it also need Perl and Java? also what is this modifying? Or is this similar to what I've already done using the command above?
Code:
$ export PATH = / Path/to/jre7/bin :/ path / to / Android-sdk-windows / build-tools / 19 . 0 . 0 /: $ PATH
$
$ Adb Shell mount -a
$
$ # fetch Framework-Res.Apk
$ Adb pull / system / framework / framework-res.apk
$
$ # Backup
$ \ cp -pf -Res.Apk Framework Framework-Res.Apk_
$ Java -jar Apktool_2. 0 .0 B9.Jar D -Advance Framework-Res.Apk
$
$ # modify user-agent, Uaprofile in Resources
$ cp -P Framework-res/res/values/strings.Xml Strings.Org.Xml
$ Perl -I -P -s -e ' s # # Http://Www.Google.Com/oha/rdf/ua-profile-kila.Xml Http://Www.Apple.Com/mms/uaprof.Rdf # g ' Framework-res/res/values/strings.Xml
$ Perl -I -P -s -e ' s # <string Name="config_mms_user_agent"> CyanogenMod </ string> # <string Name="config_mms_user_agent"> IPhoneOS/3.0 (7A341) </ string> # g ' Framework- res / res / values / strings.xml
$ find. -iname \ *. BAK -delete
$
$ # install as 127.Apk
$ java -jar Apktool_2. 0 .0 B9.Jar if Framework-Res.Apk_
$
$ # build-Framework Res.Apk
$ java-jar Apktool_2. 0 .0 B9.Jar b-Advance Framework-res
$
$ # Update Resources.Arsc only
$ cp -P Framework-res/build/apk/resources.Arsc.
$ 7z u-tzip-mx0 framework-res.apk resources.arsc
$
$ # push Framework-Res.Apk
$ Adb push framework-res.apk / system / framework / framework-res.apk
$ Adb Shell chmod 644 / system / Framework / Framework-Res.Apk
$
Thanks for the insights!
Related
Hey! ^_^
I made a script to remove the bloat from ROMs, add some script functionality and replace some system APKs. It's simple, but really powerful. I use it everytime I get a new ROM because I like plain stock ROMs, with only the system apps. I dunno, I just like it that way .
So, here it is, ModYourROM LITE! ^^!. It’s intended to be used AFTER A ROM FLASH, INSIDE RECOVERY, AND BEFORE THE FIRST BOOT, but it can run afterwards with no issues, I guess.
ROM Compatibility? for now, it’s been tested only with GingerYoshi 1.1 and 1.2 (awesome ROM by the way ).
Now…
Very Important Notes, or V.I.N. for short. Yeah, like Vin Diesel, only that he’ll come and punch you right in your face if you don’t read AND follow them =P.
You need to have ADB in your PATH variable, or edit the script accordingly (!!!).
This script is made for Linux. If you’re on Windows, replace "#" by "REM" and remove the first line of the script.
Don’t just bluntly run it. READ what the script does before running it. It’s common-linux-sense.
You need to have busybox run-parts on your ROM for the startup-scripts functionality. GingerYoshi has it, I don't know which other ROMs have it. It's only needed if you want the startup scripts though.
This script creates a folder called “bak” in your SD card, in case you want to redo the changes. Be sure to have it inserted on the phone before running the script.
Last but not least: I’m not responsible if this breaks your phone, ROM, flying toaster or BORGizes your phone and assimilates you. This script has been working on my phone & setup without much modifications other than adding/removing a few APKs or scripts, so this is the only guarantee I give you. It hasn’t broken mine, but YDMV (Your Device May Vary). Still, you can PM me or post here and I'll try to help you fix something this script has made. However, I'm no expert so I may - or may not - fix what this script did on your phone.
Now, let’s get our hands dirty:
Create a folder somewhere (ie Destkop). I’ll call it “myr“.
Add your custom APKs into myr/apks. Rename them if needed so they have simple names with no spaces. Stuff like foo.bar.boo.hoo.apk sucks =P.
Add your startup scripts (if any) into myr/scripts (you can find some at the bottom of this post).
Add your boot animation replacement (if any) into myr/boot.
Add the latest busybox for ARM5 (in the case of HTC Magic, busybox-armv5l) into myr/busybox. You can find it HERE. Rename it as busy1184, WITH NO EXTENSION.
Put the following scripts in your myr folder:
myrLITE.sh
Code:
#!/bin/sh
# ================================================================================================================
# ModYourROM LITE v1.1 by DARKGuy (dark DOT guy DOT 2008 AT gmail DOT com)
# 6th Jun 2011
#
# WINDOWS USER: Replace # by REM and delete the first line. Be sure to have adb in your PATH environment variable.
# ================================================================================================================
# =====================================================================
# DO NOT REMOVE THIS ADB SEGMENT
# =====================================================================
echo "Mounting..."
adb -d shell mount /data
adb -d shell mount /system
adb -d shell mount /sdcard
adb -d shell mount /sd-ext
adb -d shell mkdir /sdcard/bak
# =====================================================================
# Remove this segment if you don't want to update busybox
# =====================================================================
adb -d push busybox/busybox1184 /sdcard/busy1184
adb -d shell dd if=/sdcard/busy1184 of=/system/bin/busybox
adb -d shell chmod 755 /system/bin/busybox
adb -d shell /system/bin/busybox --install /system/xbin
adb -d shell rm /sdcard/busy1184
# =====================================================================
# Remove these two segments if you don't want/have any startup scripts
# =====================================================================
echo "Adding startup script functionality..."
adb -d shell mkdir /data/local/scripts
adb -d push 90scripts.sh /system/etc/init.d/90scripts
adb -d shell chmod 0750 /system/etc/init.d/90scripts
adb -d shell chown 0:2000 /system/etc/init.d/90scripts
echo "Adding startup scripts..."
adb -d push scripts/noatime.sh /data/local/scripts/noatime.sh
adb -d push scripts/autokiller.sh /data/local/scripts/autokiller.sh
adb -d push scripts/non-rotational.sh /data/local/scripts/non-rotational.sh
adb -d shell chmod +x /data/local/scripts/noatime.sh
adb -d shell chmod +x /data/local/scripts/autokiller.sh
adb -d shell chmod +x /data/local/scripts/non-rotational.sh
# =====================================================================
# Take a look at what apps does this segment remove and delete the
# lines of apps you want to KEEP on your device.
# =====================================================================
echo "Removing apps..."
# Safe to remove
adb -d shell mv /system/app/Protips.apk /sdcard/bak
adb -d shell mv /system/app/PicoTts.apk /sdcard/bak
adb -d shell mv /system/app/TtsService.apk /sdcard/bak
adb -d shell mv /system/app/VoiceDialer.apk /sdcard/bak
adb -d shell mv /system/app/GoogleBackupTransport.apk /sdcard/bak
adb -d shell mv /system/app/GoogleFeedback.apk /sdcard/bak
adb -d shell mv /system/app/GooglePartnerSetup.apk /sdcard/bak
adb -d shell mv /system/app/OneTimeInitializer.apk /sdcard/bak
adb -d shell mv /system/app/ApplicationsProvider.apk /sdcard/bak
adb -d shell mv /system/app/Development.apk /sdcard/bak
adb -d shell mv /system/app/Stk.apk /sdcard/bak
# Bloat
adb -d shell mv /data/app/YouTube.apk /sdcard/bak
adb -d shell mv /data/app/DSPManager.apk /sdcard/bak
adb -d shell mv /system/app/Maxthon.apk /sdcard/bak
adb -d shell mv /system/app/GoogleQuickSearchBox.apk /sdcard/bak
adb -d shell mv /system/app/ThemeChooser.apk /sdcard/bak
adb -d shell mv /system/app/ThemeManager.apk /sdcard/bak
adb -d shell mv /system/app/lindamanager.apk /sdcard/bak
# Core app (I don't use GTalk. Delete if you do).
adb -d shell mv /system/app/Talk.apk /sdcard/bak
# Core app (I don't use the News Reader. Delete if you do).
adb -d shell mv /system/app/GenieWidget.apk /sdcard/bak
# Core app (I don't use the Email app. Delete if you do).
adb -d shell mv /system/app/Email.apk /sdcard/bak
# To be replaced afterwards (READ NOTE IN NEXT SEGMENT)
adb -d shell mv /system/app/DeskClock.apk /sdcard/bak
adb -d shell mv /system/app/Gallery3D.apk /sdcard/bak
# Remove launchers, so we add our own later (READ NOTE IN NEXT SEGMENT)
adb -d shell mv /system/app/Launcher2.apk /sdcard/bak
adb -d shell mv /system/app/ZeamLauncher.apk /sdcard/bak
# =====================================================================
# Remove this segment if you don't want/have any bootanimation.zip
# =====================================================================
echo "Changing boot animation..."
adb -d shell rm -f /system/media/bootanimation.zip
adb -d push boot/bootanimation.zip /system/media/bootanimation.zip
# =====================================================================
# Remove this segment if you don't want/have any replacement apps.
#
# BE SURE TO HAVE A REPLACEMENT APP HERE IN CASE YOU REMOVE CORE APPS,
# like the Clock, News Reader (GenieWidget), Email, Launcher and Gallery3D (which are
# removed above if you didn't look carefully enough - and as for Gallery, I replace it with a
# faster, maybe-not-so-eyecandy-er 2D one).
# =====================================================================
echo "Adding replacement apps..."
adb -d push apks/AlarmClockPlus.apk /system/app/AlarmClockPlus.apk
adb -d push apks/Gallery.apk /system/app/Gallery.apk
adb -d push apks/LauncherPro.apk /system/app/LauncherPro.apk
# =====================================================================
# Don't delete this, it's safe to keep it. Your next boot will be a bit
# slower because it's regenerating the odex files.
# =====================================================================
echo "Cleaning dalvik-cache..."
adb -d shell rm -f /data/dalvik-cache/*
adb -d shell rm -f /sd-ext/dalvik-cache/*
adb -d shell busybox sync
echo "."
echo "Done! Enjoy your new LITE ROM :)"
echo "Script by DARKGuy"
echo "http://www.drakkengard.com/blog/"
echo "."
90scripts
Code:
#!/system/bin/sh
sList=`ls /data/local/scripts/*.sh`
for myScript in $sList
do
sh $myScript
done
Now, EDIT ACCORDINGLY BEFORE RUNNING the myrLITE script.
You should end up with something like this:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Now, if you’re on Linux, run this first:
Code:
chmod +x myrLITE.sh
Then run the script:
Code:
./myrLITE.sh
If you’re on Windows, just name it myrLITE.bat and run it from a command prompt.
Now just plain enjoy your new LITE’d ROM .
Credits and references:
* GingerYoshi by Yoshi Team ( here ).
* SD Tweakz by Ungaze ( here and here ).
* Some theory on removing some APKs and autokiller script by tom0769 ( here ).
* Barebones CM Wiki page by CyanogenMod ( here ).
Comments & suggestions welcome!
If you like my work and want to motivate me to keep working on this (and more stuff for the community) make a donation! any amount is greatly appreciated
=========
CHANGELOG
=========
1.2 (09/06/11)
* Removed the annoying beginner's tips widget
1.1 (06/06/11)
* Added busybox updating
* Added Email.apk and GenieWidget.apk to the core app APK removing section.
* Fixed 90scripts.sh
1.0 (05/25/11)
* Initial release
Great! very usefull
I would also like to find some lightweight replacemments for some apps:
gtalk
- gibberbot (gtalk mod with encryption)
- imo (multiprotocol)
...
Skype
- fring (this can also replace message, phone calling and contacts apps?)
- Sipdroid
- Linphone
- Redphone (has encryption but it is not opensource?)
...
gmail
- K-9 + APG Seems faster and has more features, but I am not sure why it has to be running all the time. I would preffer to open it and check when I want to. Is it me or gmail seems more lightweight in resources?
Maps
- Can we get rid of them working all the time?
devrruti said:
Great! very usefull
I would also like to find some lightweight replacemments for some apps:
gtalk
- gibberbot (gtalk mod with encryption)
- imo (multiprotocol)
...
Skype
- fring (this can also replace message, phone calling and contacts apps?)
- Sipdroid
- Linphone
- Redphone (has encryption but it is not opensource?)
...
gmail
- K-9 + APG Seems faster and has more features, but I am not sure why it has to be running all the time. I would preffer to open it and check when I want to. Is it me or gmail seems more lightweight in resources?
Maps
- Can we get rid of them working all the time?
Click to expand...
Click to collapse
Thanks! glad you like it
Well, for GTalk I've been using eBuddy, and so far it's the best one out there .
I don't use voice calls Skype-style, so I don't know which one to use... Fring seems like a good alternative. I tried to use it as a replacement for eBuddy but I kept going back to it, so its only use (to me) would be a Skype replacement app :/
You may be right about GMail being more lightweight than K-9. I've been testing K-9 for a while now and while I haven't tested it through, it seems waaaaaay faster . I also found this little app which claims to stop the data sync, so it kinda does what you need?
https://market.android.com/details?id=org.r3pek.k9datakiller
Thanks for the feedback =) this little script will keep improving, so stay tuned! ^^.
Hey, great work!
Will try this next week to setup a gb rom (don't know which actually)
I'm quite content with laszlo's froyo the last weeks.
Just out of curiosity (don't want to miss maybe something great new) I'll try ezGingerbread, COS-DS or Yoshi's.
tom0769 said:
Hey, great work!
Will try this next week to setup a gb rom (don't know which actually)
I'm quite content with laszlo's froyo the last weeks.
Just out of curiosity (don't want to miss maybe something great new) I'll try ezGingerbread, COS-DS or Yoshi's.
Click to expand...
Click to collapse
^_^ Thanks! did you try it with the ROMs?
I just updated the script to 1.1 ^^ to comply with GY 1.2 update
greate work , going to try this in the evening when i have some time !
Today , while i am trying to sync the source of android , there is an error like this :
Code:
fatal: Cannot get android.googlesource.com/tools/repo/clone.bundle
fatal: error unknown url type: https
and then i tried to find the way to solve the problem like "edit the script of repo " , for instance :
Code:
REPO_URL='gerrit.googlesource.com/git-repo'
REPO_REV='stable'
change the https to http , but it does not work !
final , i find the way to make it works well :
1.install the Openssl
download the source of OpenSSL
unpack it and mv it to anywhere you want , i put it under the directory of ; /home/jvm/
the cd to it , and run the command :
Code:
$ cd /home/jvm/openssl
$ sudo ./config --prefix=/usr/local --openssldir=/usr/local/openssl
$ sudo make install
finally , it is ok
2.Rebuild and install the Python
download the source of Python2.7
unpack it and mv it to anywhere you want , i put it under the directory of ; /home/jvm/
the cd to it , and run the command :
Code:
$ cd /home/jvm/Python-2.7
#### for this step ,you will need to edit the "modules/setup.dist" , and find the line with "ssl" , and remove the "#"
$ sudo ./config --enable-ssl
$ sudo make install
finally , it is ok
3.Repo init -u your-git-url
Code:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ mkdir your-working-dir
$ cd your-working-dir
$ repo init -u your-git-ul
after everything done ,you can sync the source ,and the error has gone away , hope this can help you ~
Ps:
the first time i post thread , if there are anything wrong , please tell me ,thanks ~~
still getting the error
i have ubuntu 13.04 i typed openssl in a command window and its installed on my computer.so i reinstalled python 2.78 with ./configure --enable-ssl but im still getting the same error when trying to repo init.
Common Commands used in Linux.
Since, Android is based on Linux, there is much possibility that there is a need to use a Linux based OS. For such use, UBUNTU
is favoured, for its easy and more user friendly.
Today, I am going to Post a few commands that are very useful to the newbies to development
I myself am new, and have faced many problems with this, so I am posting a this thread, to help all the noobs/newbies find what they need in a single place
Okay so, lets start with some basic commands, which can be classified as general commands, and each Linux user MUST KNOW ALL OF THEM !!
Code:
sudo
It simply means "Superuser do". It requires password.
Code:
sudo apt-get install APPLICATION_name
This installs the application finding it on the internet, and gives you the suitable output(If the app exists or not).
Code:
sudo apt-get remove APPLICATION_name
It Removes the application
Code:
sudo apt-get update
it updates the repositories
Code:
sudo apt-get upgrade
upgrades your installed application with their latest versions from Ubuntu repositories
Code:
killall APPLICATION_NAME
kills (terminates) an application
Code:
ps -e
displays currently running processes
Code:
kill APPLICATION_PID
kills an application; where APPLICATION_PID.
NOTE: YOU CAN FIND "PID" USING EARLIER CODE.
Code:
wget http://path_to_file.com
downloads a file from the web to current directory
Code:
cd /PATH/TO/DIR
changes current directory to DIR. Use cd to change the current directory into any dir
Code:
cd ..
Like ms-dos, goes up one directory
Code:
dir
OR
Code:
ls
lists directory content
Code:
man COMMAND
Displays manual for command.
eg: man sudo
Code:
cp ORIGINALFILE NEWFILE
Copy a file
Code:
mv SOURCE DESTINATION
Moves a file
NOTE: YOU CAN ALSO RENAME A FILE WITH THIS.
EG: mv old_filename new_filename
Code:
mkdir FOLDERNAME
Make a directory/folder
Miscellaneous: Level 2
Code:
du -sh folder name
This calculates the size of the folder
Code:
ps -aux
This shows all the running processes
Code:
chown -R User:User dir
Change owner of files and directories
Code:
chmod 777 yourScript
This makes a shell script ".sh" extension
Code:
netstat -anltp | grep "LISTEN"
See all open ports on your machine
Code:
sudo apt-get install ufw
sudo ufw allow 80/tcp
sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw allow 21/tcp
sudo ufw enable
Ubuntu provides a uncomplicated firewall (ufw). To install it and only allow SSH, FTP, and webtraffic use the following command.
Network Commands
Code:
ifconfig
Shows the network connections
WILL UPDATE REGULARLY AS MUCH I COULD.
Code:
passwd
Run after installing Linux when you see "[email protected]:~$" to set your root pass word
Code:
adduser
Replace and run to add a new user
Code:
adduser sudo
Replace and run to add that user to sudo
Code:
sudo apt-get purge
Replace and run to purge your system of that package
Code:
apt-cache search
Replace and run to search for new packages to install
Note: "wild cards" eg "*" are acceptable
Code:
find -type f -iname 'some-compressed-file*' -print0 | xargs -0 sudo tar -vxpzf
Replace with at least the "root" directory you want to search through and Replace " some-compressed-file " (leave the single quotes ' ' and the wild card *) and run to find every file under the given directory that has that name and the pipe " | " it out to tar so that'll extract to your current directory
Note: "find" does the finding, the "-type -f" tells find to only look for files, the "-iname" tells find to search parts of file names, the ' ' around "some-compressed-file" keeps the * from doing bad things, the "print0" tells find to "scrub" for spaces and such before outputting a result, the " | " pipes the results of find to xargs, the "-0" is because of "print0" in the find side of the pipe, and "sudo tar - vxpzf" is where tar extracts the findings of find.
Code:
find $HOME -type f -iname '*zip' -print0 | xargs -0 ls
Run to find and list every zip file under the home folder
Say you want to make a file to contain some notes wile in the command line
Code:
sudo cat > $HOME/someNotes.txt <<EOF
# place a command here
echo "hello world, I update aptget"
sudo apt-get update -q
EOF
Try editing the part after $HOME; type it in or write a file that contains the combo of " cat > $HOME/someNotes.txt <<EOF " some text or commands " EOF " and you'll find making custom scripts of varying complexity to be easy.
.......
Hope some of these are also found to be useful for others.
Thanks for starting this here thread.
Hit the link in my signature for more help with Linux for new and seasoned users
Edit 08082013- added another useful tip and reformatted commands to better fit the OP's formatting.
Sent from either my SPH-D700 or myTouch3Gs
Debian Kit/QEMU Linux Install guide for all android devices that I'm writing:
http://forum.xda-developers.com/showthread.php?t=2240397
Now have working Installers for ARM Java 7 JDK + Maptools + jMonkey
Yo ! Nice Share
To delete contents of a large text file ..
Code:
cat /dev/null > NameOfTheFile
Useful variations of ls command :
Show dir content in a list
Code:
ls -l
Show dir content in a list sorted by modification time (newer first)
Code:
ls -lt
Show dir content in a list sorted by modification time (older first)
Code:
ls -lrt
Show subdirectories recursively
Code:
ls -R
If you want to show files starting with . (hidden file), you can add -a option.
More options with command :
Code:
man ls
Useful variations of grep command :
grep is used to print lines matching a pattern.
Find the entry for current user in file /etc/passwd :
Code:
cat /etc/passwd | grep $USER
Find all the entry except current user entry in file /etc/passwd :
Code:
cat /etc/passwd | grep -v $USER
Find all the numbers in file /etc/passwd :
Code:
cat /etc/passwd|grep '[0-9]*'
Add color to grep command :
Code:
cat /etc/passwd | grep --color $USER
(You can add
Code:
alias grep='grep --color=auto'
in ~/.bashrc to always have colored grep)
Useful variations of tar command :
Create archive_name.tar from dirname :
Code:
tar cvf archive_name.tar dirname/
Create archive_name.tar.gz (compressed) from dirname :
Code:
tar zcvf archive_name.tar.gz dirname/
Extract archive_name.tar.gz :
Code:
tar zxvf archive_name.tar.gz
Useful variations of mkdir command :
Create directory and subdirectories if not existing :
Code:
mkdir -p /tmp/a/b/c
(mkdir /tmp/a/b/c will fail if /tmp/a and /tmp/a/b don't exist)
Useful tip :
Use bash variable "!$" to get the value of the last argument of the last command interpreted.
For example :
Code:
mkdir /tmp/test_a
cd !$ (equivalent cd /tmp/test_a)
or,
Code:
mv /tmp/a /tmp/b
ls !$ (equivalent ls /tmp/b)
pivotce.com informs that instructions have been published on gaining root access to a webOS TV. This is much harder than on the old phones and tablets. When this was done on legacy webOS, there was a wave of enhancements and tweaks made available to phone users from webOS Internals and other developers.
The instructions can be found on the Russian webOS forums here: webos-forums.ru/topic4650.html (English Translation via Google).
As the thread itself notes, this creates the possibility of fiddling with your TV in a way that may turn it into a large, thin brick and will almost certainly invalidate your warranty. The general user should stay well clear of this.
pivotCE published this for information only and recommend leaving investigations to those who know what they are doing or who can afford to wreck expensive television sets. We will watch to see if anything interesting emerges from this development.
+
Detailed analysis of the root access method described above:
forums.webosnation.com/lg-webos-tv/331754-pivotce-seems-webos-tv-has-been-rooted.html#post3450911
Hello!
I'm from webos-forums.ru. I've root on TV for a while and can help you with translation or testing on LG webOS 1.4.
rooting
I could use your help rooting my lg 65uf6450-ua if you would. Thank you
Root webOS
Hodizzal said:
I could use your help rooting my lg 65uf6450-ua if you would. Thank you
Click to expand...
Click to collapse
1. You need to install Developer Mode App and export private ssh-key with CLI (webostv.developer.lge.com/develop/app-test)
2. Convert private ssh-key with puttygen [import key <your private ssh-key>, then save private key]
3. Download exploit (zalil.su/6937580), then connect with TV User: prisoner, [<ip-tv>:9922] + private-key with WinSCP (or other SCP-client), upload to /media/developer on TV and rename it to root.
on linux
Code:
ssh -i <your private ssh-key> [email protected]<ip-tv> -p 9922 "/bin/sh -i"
4.
Code:
chmod +x root
Code:
./root
5. After try install any app from market go to LG App Store and try to install any app.
6. if third stage ok. the insert password 1111 as said.
7.
Code:
busybox chroot /proc/1/root
Code:
[email protected]tTV:/# id
Code:
uid=0(root) gid=0(root)........
I personally use Linux Subsystem on Windows 10 for all of this.
To install .ipk app:
Code:
ApplicationInstallerUtility -c install -p /tmp/<any-name>.ipk -u 0 -l /media/developer -d
Info about your linux kernel and TV firmware:
Code:
luna-send -n 1 -f luna://com.palm.systemservice/osInfo/query '{ "subscribe": false }'
Launch app:
Code:
luna-send -n 1 -f luna://com.webos.applicationManager/launch '{"id": "netflix"}'
All apps ID you can find with
Code:
luna-send -n 1 "palm://com.palm.applicationManager/listLaunchPoints" "{}"
or at a folder /media/cryptofs/apps/usr/palm/applications/<App ID>/appinfo.json
For permanent root access through telnet:
1)
Code:
[email protected]:/# mkdir -p /media/cryptofs/root/etc
2)
Code:
[email protected]:/# cp -r /etc/* /media/cryptofs/root/etc
3)
Code:
[email protected]:/# mount -o bind /media/cryptofs/root/etc /etc
4)
Code:
[email protected]:/# passwd root
Enter any new root password
5)
Code:
cp /media/cryptofs/apps/usr/palm/services/com.palmdts.devmode.service/start-devmode.sh /tmp/start-devmode.sh
6) Download with WinSCP start-devmode.sh and edit it locally.
You need to add at the beginning
Code:
mount -o bind /media/cryptofs/root/etc /etc
telnetd -l /sbin/sulogin &
Plus you can add the line to launch any App at start, e.g:
Code:
luna-send -n 1 -f luna://com.webos.applicationManager/launch '{"id": "netflix", "params":{}}'
And comment Dev Mode online check.
Here it's mine start-devmode.sh. It's for webOS 1.4. It can be different for other webOS versions:
Code:
#!/bin/sh
mount -o bind /media/cryptofs/root/etc /etc
telnetd -l /sbin/sulogin &
#luna-send -n 1 -f luna://com.webos.applicationManager/launch '{"id": "netflix", "params":{}}'
# FIXME: disable this to turn off script echo
set -x
# FIXME: disable this to stop script from bailing on error
# set -e
# TODO: Check upstart daemon/process tracking (do we need to change /etc/init/devmode.conf? start sshd as daemon?)
# set devmode ssh port here
SSH_PORT="9922"
# set arch:
ARCH="armv71"
grep -qs "qemux86" /etc/hostname && ARCH="i686"
# set directories
OPT_DEVMODE="/opt/devmode"
OPT_SSH="/opt/openssh"
DEVELOPER_HOME="/media/developer"
DEVMODE_SERVICE_DIR="/media/cryptofs/apps/usr/palm/services/com.palmdts.devmode.service"
CRYPTO_SSH="$DEVMODE_SERVICE_DIR/binaries-${ARCH}/opt/openssh"
CRYPTO_OPT="$DEVMODE_SERVICE_DIR/binaries-${ARCH}/opt"
if [ -s ${DEVMODE_SERVICE_DIR}/jail_app.conf ] ; then
mv ${DEVMODE_SERVICE_DIR}/jail_app.conf ${DEVELOPER_HOME}
mv ${DEVMODE_SERVICE_DIR}/jail_app.conf.sig ${DEVELOPER_HOME}
fi
if [ -r ${DEVMODE_SERVICE_DIR}/sessionToken ] ; then
mv -f ${DEVMODE_SERVICE_DIR}/sessionToken /var/luna/preferences/devmode_enabled
fi
# Make sure the ssh binaries are executable (in service directory)
if [ ! -x "${CRYPTO_SSH}/sbin/sshd" ] ; then
chmod ugo+x ${CRYPTO_SSH}/sbin/sshd ${CRYPTO_SSH}/bin/ssh* ${CRYPTO_SSH}/bin/scp* || true
chmod ugo+x ${CRYPTO_SSH}/bin/sftp ${CRYPTO_SSH}/lib/openssh/* || true
chmod ugo+x ${CRYPTO_OPT}/devmode/usr/bin/* || true
fi
# TODO: (later) Look for "re-init" flag to re-generate ssh key if requested by app (via devkey service)
# com.palm.service.devmode could have "resetKey" method to erase /var/lib/devmode/ssh/webos_rsa
# Kind of dangerous though, since new key will need to be fetched on the desktop (after reboot)...
# We could just require a hard-reset of the TV which should blow away /var/lib/devmode/ssh/...
# Initialize the developer (client) SSH key pair, if it doesn't already exist
if [ ! -e /var/lib/devmode/ssh/webos_rsa ] ; then
mkdir -p /var/lib/devmode/ssh
chmod 0700 /var/lib/devmode/ssh
# get FIRST six (UPPER-CASE, hex) characters of 40-char nduid from nyx-cmd
# NOTE: This MUST match passphrase as displayed in devmode app (main.js)!
# PASSPHRASE="`/usr/bin/nyx-cmd DeviceInfo query nduid | head -c 6 | tr 'a-z' 'A-Z'`"
# PASSPHRASE="`/usr/bin/nyx-cmd DeviceInfo query nduid | tail -n1 | head -c 6 | tr 'a-z' 'A-Z'`"
PASSPHRASE="`tail /var/lib/secretagent/nduid -c 40 | head -c 6 | tr 'a-z' 'A-Z'`"
${CRYPTO_SSH}/bin/ssh-keygen -t rsa -C "[email protected]" -N "${PASSPHRASE}" -f /var/lib/devmode/ssh/webos_rsa
# copy ssh key to /var/luna/preferences so the devmode service's KeyServer can read it and serve to ares-webos-cli tools
cp -f /var/lib/devmode/ssh/webos_rsa /var/luna/preferences/webos_rsa
chmod 0644 /var/luna/preferences/webos_rsa
# if we generated a new ssh key, make sure we re-create the authorized_keys file
rm -f ${DEVELOPER_HOME}/.ssh/authorized_keys
fi
# Make sure the /media/developer (and log) directories exists (as sam.conf erases it when devmode is off):
mkdir -p ${DEVELOPER_HOME}/log
chmod 777 ${DEVELOPER_HOME} ${DEVELOPER_HOME}/log
# Install the SSH key into the authorized_keys file (if it doesn't already exist)
if [ ! -e ${DEVELOPER_HOME}/.ssh/authorized_keys ] ; then
mkdir -p ${DEVELOPER_HOME}/.ssh
cp -f /var/lib/devmode/ssh/webos_rsa.pub ${DEVELOPER_HOME}/.ssh/authorized_keys || true
# NOTE: authorized_keys MUST be world-readable else sshd can't read it inside the devmode jail
# To keep sshd from complaining about that, we launch sshd with -o "StrictModes no" (below).
chmod 755 ${DEVELOPER_HOME}/.ssh
chmod 644 ${DEVELOPER_HOME}/.ssh/authorized_keys
chown -R developer:developer ${DEVELOPER_HOME}/.ssh
fi
# FIXME: Can we move this to /var/run/devmode/sshd ?
# Create PrivSep dir
mkdir -p /var/run/sshd
chmod 0755 /var/run/sshd
# Create directory for host keys (rather than /opt/openssh/etc/ssh/)
HOST_KEY_DIR="/var/lib/devmode/sshd"
if [ ! -d "${HOST_KEY_DIR}" ] ; then
mkdir -p ${HOST_KEY_DIR}
chmod 0700 ${HOST_KEY_DIR}
fi
# Create initial keys if necessary
if [ ! -f ${HOST_KEY_DIR}/ssh_host_rsa_key ]; then
echo " generating ssh RSA key..."
${CRYPTO_SSH}/bin/ssh-keygen -q -f ${HOST_KEY_DIR}/ssh_host_rsa_key -N '' -t rsa
fi
if [ ! -f ${HOST_KEY_DIR}/ssh_host_ecdsa_key ]; then
echo " generating ssh ECDSA key..."
${CRYPTO_SSH}/bin/ssh-keygen -q -f ${HOST_KEY_DIR}/ssh_host_ecdsa_key -N '' -t ecdsa
fi
if [ ! -f ${HOST_KEY_DIR}/ssh_host_dsa_key ]; then
echo " generating ssh DSA key..."
${CRYPTO_SSH}/bin/ssh-keygen -q -f ${HOST_KEY_DIR}/ssh_host_dsa_key -N '' -t dsa
fi
# Check config
# NOTE: This should only be enabled for testing
#${CRYPTO_SSH}/sbin/sshd -f ${CRYPTO_SSH}/etc/ssh/sshd_config -h ${HOST_KEY_DIR}/ssh_host_rsa_key -t
# Set jailer command
DEVMODE_JAIL="/usr/bin/jailer -t native_devmode -i com.palm.devmode.openssh -p ${DEVELOPER_HOME}/ -s /bin/sh"
#DEVMODE_JAIL="echo"
# Add for debugging, but this will cause sshd to exit after the first ssh login:
# -ddd -e
# Make environment file for openssh
DEVMODE_JAIL_CONF="/etc/jail_native_devmode.conf"
DEVMODE_OPENSSH_ENV="${DEVELOPER_HOME}/.ssh/environment"
if [ -f ${DEVMODE_JAIL_CONF} ]; then
echo " generating environment file from jail_native_devmode.conf..."
find ${DEVMODE_JAIL_CONF} | xargs awk '/setenv/{printf "%s=%sn", $2,$3}' > ${DEVMODE_OPENSSH_ENV}
${DEVMODE_JAIL} /usr/bin/env >> ${DEVMODE_OPENSSH_ENV}
fi
# Set path for devmode
if [ -f ${DEVMODE_OPENSSH_ENV} ]; then
echo "PATH=${PATH}:${OPT_DEVMODE}/usr/bin" >> ${DEVMODE_OPENSSH_ENV}
fi
sleep 5;
for interface in $(ls /sys/class/net/ | grep -v -e lo -e sit);
do
if [ -r /sys/class/net/$interface/carrier ] ; then
if [[ $(cat /sys/class/net/$interface/carrier) == 1 ]]; then OnLine=1; fi
fi
done
#if [ $OnLine ]; then
# sessionToken=$(cat /var/luna/preferences/devmode_enabled);
# checkSession=$(curl --max-time 3 -s https://developer.lge.com/secure/CheckDevModeSession.dev?sessionToken=$sessionToken);
# if [ "$checkSession" != "" ] ; then
# result=$(node -pe 'JSON.parse(process.argv[1]).result' "$checkSession");
# if [ "$result" == "success" ] ; then
rm -rf /var/luna/preferences/dc*;
# # create devSessionTime file to remain session time in devmode app
# remainTime=$(node -pe 'JSON.parse(process.argv[1]).errorMsg' "$checkSession");
# resultValidTimeCheck=$(echo "${remainTime}" | egrep "^([0-9]{1,4}(:[0-5][0-9]){2})$");
# if [ "$resultValidTimeCheck" != "" ] ; then
echo '900:00:00' > ${DEVMODE_SERVICE_DIR}/devSessionTime;
chgrp 5000 ${DEVMODE_SERVICE_DIR}/devSessionTime;
chmod 664 ${DEVMODE_SERVICE_DIR}/devSessionTime;
# fi
# elif [ "$result" == "fail" ] ; then
# rm -rf /var/luna/preferences/devmode_enabled;
# rm -rf /var/luna/preferences/dc*;
# if [ -e ${DEVMODE_SERVICE_DIR}/devSessionTime ] ; then
# rm ${DEVMODE_SERVICE_DIR}/devSessionTime;
# fi
# fi
# fi
#fi
# Cache clear function added (except Local storage)
if [ -e ${DEVMODE_SERVICE_DIR}/devCacheClear ] ; then
rm -rf `ls | find /var/lib/webappmanager*/* -name "Local Storage" -o -name "localstorage" -prune -o -print`;
rm ${DEVMODE_SERVICE_DIR}/devCacheClear;
fi
# Launch sshd
${DEVMODE_JAIL} ${OPT_SSH}/sbin/sshd
-o StrictModes=no
-f ${OPT_SSH}/etc/ssh/sshd_config
-h ${HOST_KEY_DIR}/ssh_host_rsa_key
-o PasswordAuthentication=no -o PermitRootLogin=no -o PermitUserEnvironment=yes
-D -p ${SSH_PORT}
7) Upload new start-devmode.sh and rewrite the old one
Code:
cp /tmp/start-devmode.sh /media/cryptofs/apps/usr/palm/services/com.palmdts.devmode.service/start-devmode.sh
8) Restart TV.
Connect with telnet and type previously entered password.
Code:
telnet <ip-tv>
Trying <ip-tv>...
Connected to <ip-tv>].
Escape character is '^]'.
webOS TV 1.4.0 LGSmartTV
Give root password for system maintenance
(or type Control-D for normal startup):
Entering System Maintenance Mode
[email protected]:/#
Does it work on WebOS 3.5 devices?
medi01 said:
Does it work on WebOS 3.5 devices?
Click to expand...
Click to collapse
Positive.
is it possible to install webOS 3.0 on an 65EF9500 that currently has WebOS 2.0 via the USB upgrade method?
enkrypt3d said:
is it possible to install webOS 3.0 on an 65EF9500 that currently has WebOS 2.0 via the USB upgrade method?
Click to expand...
Click to collapse
No
Is there any method to get 3.0 installed over 1.4 I have a 49ub8500-ua
syconu said:
Is there any method to get 3.0 installed over 1.4 I have a 49ub8500-ua
Click to expand...
Click to collapse
No
Is there anything hack related that I can do with this to and can is support a new air mouse with a dongle
Ok, so I get run the root app and first ,second , and third stage all are good. then it says try get root password is 1111. But the terminal keeps freezing after that happens. A couple times my tv rebooted too. I cant figure out what i could have messed up. ANyone with any experience using this method have any legit information?
steven817817 said:
Ok, so I get run the root app and first ,second , and third stage all are good. then it says try get root password is 1111. But the terminal keeps freezing after that happens. A couple times my tv rebooted too. I cant figure out what i could have messed up. ANyone with any experience using this method have any legit information?
Click to expand...
Click to collapse
Try to delete all 'cache' files from exploit at /media/developer. It doesn't wotk twice as far as I concerned
Is there anyway I can root my 1.4.0 and if so what r the benefits of the root? Can I install Android or kodi? What's the point
teffd said:
Try to delete all 'cache' files from exploit at /media/developer. It doesn't wotk twice as far as I concerned
Click to expand...
Click to collapse
I tried it stil seems to finish step 3 then says enter 1111. But this is where it freezes up and does not get any further.
Is this still working on 3.6? I'm stuck at try to install any app from market.
Mazda77 said:
Positive.
Click to expand...
Click to collapse
Which TV and firmware version?
Is this possible with UJ63 serie?
Hi, would the root access allow somehow to connect other bluetooth devices different than LG? Thanks!
You can do pretty much anything to the system with root, even include support for unsupported devices in form of additional kernel modules.
For example, I've added Samba support so I can mount use my NAS (see my blog at ddscentral dot org for details).
Hey guys is it possible to install android apps into WebOS? I just bought an Lg oled LG 55EG9A7V i want to use Perfect Player IPTV but i cant install it right now...Other then that i dont need anything else..
Can anyone help me?
1. On your computer, convert the mp3 file to a 3gp file with a particular file name:
Code:
laptop $ ffmpeg -i path/to/some/music.mp3 -ar 8000 /tmp/pending_voicemail_greeting.3gp
2. Push that file to your phone and cleanup:
Code:
laptop $ adb push /tmp/pending_voicemail_greeting.3gp /sdcard && rm /tmp/pending_voicemail_greeting.3gp
3. Open the Google Fi app and record a new voicemail containing whatever garbage you want. (It won't be used.) It will show you the screen to preview it before committing to it. DO NOT COMMIT TO IT. Instead, just leave that screen open.
4. Overwrite the preview file with your file:
Code:
laptop $ adb shell
phone $ su
phone # cat /sdcard/pending_voicemail_greeting.3gp > /data/data/com.google.android.apps.tycho/files/pending_voicemail_greeting.3gp && rm /sdcard/pending_voicemail_greeting.3gp
5. Press "keep" in the Fi app to upload the preview as your new voicemail.