Hello all, first post here.
I've been working with Mortscript for a while now and I'm very happy with it.
Here's my attempt at a 3-script-pack. It should toggle my PND on/off in accordance to given AC power supply. But it doesn't work as expected,
especially the RunAt() seems not to work: only one event (the notify set in script ON_AC_POWER_LOSS) is executed by the scheduler, the notify set
in script ON_AC_POWER_DAEMON obviously is never executed by the scheduler. Anyone an idea?
Code:
# ON_AC_POWER_LOSS.mscr
#
# jwoegerbauer 09/04/2009
# GNU General Public License (GPL), Version 2, June 1991
#
#
# NO ERROR CHECKING IS DONE !!!
#
#ErrorLevel("off")
#
# Before using this script ensure file PowerNotifyFlags.ini
# is present and contains the following lines:
#
# [PowerOnOff]
# ACPower=1/0
#
#
Local()
#
#
# check for sufficient power or don't run anything and don't resubmit
If (BatteryPercentage() <= 35)
SleepMessage(5, "Battery level is low: " & BatteryPercentage(), "Power Warning", 1))
Exit
EndIf
#
# adjust to your needs
Set WAIT_SECS, 0
Set CHECK_BACK_SECS, 30 #must be equal or greater 10
Set PLAY_SOUND, 1
Set WAV_FILE, "\My Flash Disk\programme\TroNikPowerNotifier\chime_down.wav"
Set REG_POWER_HIVE, "HKLM"
Set REG_POWER_PATH, \
"System\CurrentControlSet\Control\Power"
Set INI, \
"\My Flash Disk\programme\TroNikPowerNotifier\PowerNotifyFlags.ini"
Set INI_SECTION, "PowerOnOff"
Set INI_KEY, "ACPower"
Sleep 100
#
# assume the device is running on external power and we unplug
# the usb-powered cable or engined off, and the power is re-supplied
# we should Cancel this script automatically.
# IMO this is a useful case when we use the device in the car in
# ignition mode and then start the engine.
#
# hence we implement now an additional power state listener (a sec timer)
While(%WAIT_SECS% > 0)
#
# yield 1 second
Sleep 1000
#
# query current power state
acPower = ExternalPowered()
If (acPower = TRUE )
# power is re-supplied
# therefore we don't go into Standby
Exit
EndIf
%WAIT_SECS% = %WAIT_SECS% - 1
EndWhile
#
#
If (not ExternalPowered())
#
#
Set ON_AC_POWER_DAEMON, "\My Flash Disk\programme\MortScript\ON_AC_POWER_DAEMON.exe"
#
# note: the turn OFF exe here defined must be the same as defined in file
# POWERNOTIFIER_PROMPT.mscr
#
#
Set TURN_OFF, "\My Flash Disk\SystemProgs\Sleep.exe"
Set TOGGLE_DISPLAY, "\My Flash Disk\SystemProgs\ToggleDisplay.exe"
Sleep 100
If ( %PLAY_SOUND % )
PlaySound( %WAV_FILE% )
EndIf
#
# On suspend mode we set ACPower=0 (OFF)
IniWrite( %INI%, %INI_SECTION%, %INI_KEY%, "0" )
Sleep 100
%INI_KEY% = "ExtPowerOff"
#
# read in registry value
ExtPowerOff = \
RegRead (%REG_POWER_HIVE%, %REG_POWER_PATH%, \
%INI_KEY%)
Sleep 100
#
# remember this value
IniWrite( %INI%, %INI_SECTION%, %INI_KEY%, ExtPowerOff )
Sleep 100
#
# set our corresponding registry value
# i.e. always turn off device in 1 second even if AC powered
# note:
# this will be revised laterly with ON_AC_POWER_RESUME script
RegWriteDword (%REG_POWER_HIVE%, %REG_POWER_PATH%, \
%INI_KEY%, 4)
Sleep 100
#
# kill old notification(s) to prevent overlap
RemoveNotifications( %ON_AC_POWER_DAEMON% )
#
# set new notify (will be processed in CHECK_BACK_SECS from now on)
ReRun = TimeStamp() + %CHECK_BACK_SECS%
RunAt( ReRun, %ON_AC_POWER_DAEMON% )
Sleep 100
#
#
# turn device into standby
Run( %TURN_OFF% )
#
#
EndIf
#
#
Exit
# ON_AC_POWER_DAEMON.mscr
#
# jwoegerbauer 09/04/2009
# GNU General Public License (GPL), Version 2, June 1991
#
#
#
# NO ERROR CHECKING IS DONE !!!
#
#ErrorLevel("off")
Local()
#
#
# adjust to your needs (seconds !!!!)
Set CHECK_BACK_SECS, 15
#
#
Set ON_AC_POWER_DAEMON, "\My Flash Disk\programme\MortScript\ON_AC_POWER_DAEMON.exe"
Set ON_AC_POWER_RESUME, "\My Flash Disk\programme\MortScript\ON_AC_POWER_RESUME.exe"
Set TURN_OFF, "\My Flash Disk\SystemProgs\Sleep.exe"
Sleep 100
#
#
# kill old notification(s) to prevent overlap
RemoveNotifications( %ON_AC_POWER_DAEMON% )
Sleep 100
#
# check AC power line state
If( NOT ExternalPowered() )
#
# set new notify (will be processed in CHECK_BACK_SECS from now on)
ReRun = TimeStamp() + %CHECK_BACK_SECS%
RunAt( ReRun, %ON_AC_POWER_DAEMON% )
Sleep 100
#
# set another new notify
ReRun = TimeStamp() + 5
RunAt( ReRun, %TURN_OFF% )
#
#
Else
#
# call our application (script)
RunWait( %ON_AC_POWER_RESUME% )
#
#
EndIf
#
#
Exit
# ON_AC_POWER_RESUME.mscr
#
# jwoegerbauer 09/04/2009
# GNU General Public License (GPL), Version 2, June 1991
#
#
#
# NO ERROR CHECKING IS DONE !!!
#
ErrorLevel("off")
#
# Before using this script ensure file PowerNotifyFlags.ini
# is present and contains the following lines:
#
# [PowerOnOff]
# ACPower=1/0
#
Local()
#
#
# adjust to your needs
Set PLAY_SOUND, 1
Set WAV_FILE, "\My Flash Disk\programme\TroNikPowerNotifier\chime_up.wav"
Sleep 50
#
# prevent ourselves from doing things more than once
If (ExternalPowered())
#
#
If (%PLAY_SOUND% )
PlaySound( %WAV_FILE% )
EndIf
#
#
Set INI, "\My Flash Disk\programme\TroNikPowerNotifier\PowerNotifyFlags.ini"
Set INI_SECTION, "PowerOnOff"
Set INI_KEY, "ACPower"
Sleep 100
#
# Read PowerFlag value
ACPower = IniRead( %INI%, %INI_SECTION%, %INI_KEY% )
#
#
If(0 = ACPower)
#
# set ACPower=1 (ON)
IniWrite( %INI%, %INI_SECTION%, %INI_KEY%, "1" )
Sleep 100
#
#
EndIf
#
#
EndIf
#
#
Exit
THX in advance
get dotfred's taskmanager here and check if your event gets installed.
your script seems to be very complex anyway. what do want to achieve?
@egoist6
Thanks for the advise: i'll test the TaskMgr you told me - hopely it runs
on Windows CE 5.0 Core too.
The goal of my scripts is to turn my PND into sleep mode when AC power
is gone off, and wake the device up when AC power is re-supplied.
[ Vielleicht treffen wir uns zufällig unbekannterweise auf der Wies'n? ]
jwoegerbauer said:
@egoist6
Thanks for the advise: i'll test the TaskMgr you told me - hopely it runs
on Windows CE 5.0 Core too.
The goal of my scripts is to turn my PND into sleep mode when AC power
is gone off, and wake the device up when AC power is re-supplied.
[ Vielleicht treffen wir uns zufällig unbekannterweise auf der Wies'n? ]
Click to expand...
Click to collapse
what is pnd?
the script should turn the device off when device runs on battery and goes below a specific bettery percentage level?
regarding wakup the device:
doesn't your device automatically wake up when acpowered?
there should be a registry key available.
apart from that your script does not run when switched off at least it runs for about 5 minutes after switching off, then the WM OS stops running apps.
[logisch - bin auf der wiesn - prosit!]
@egoist6 (and all people around the world)
PND is my abbreviation for PersonalNavigationDevice, sometimes also referred to as PNA i.e. PersonalNavigationAssistant.
The 3-scripts-package should turn the device off, regardless to current battery state or current registry settings ( and
without the need of pressing the power-button ), and reverse. All should be accomplished by software in reason for commodity.
All seems to work well, but the first time the device wakes up the display is turned on too, even when no external AC power is
supplied.
The debug-version of the scripts-package summarizes the actions performed as follows:
1253358425 ON_AC_POWER_LOSS entered
1253358427 ON_AC_POWER_DAEMON started
1253358427 ON_AC_POWER_LOSS exited
1253358533 ON_AC_POWER_DAEMON entered
1253358534 External power supply detected
1253358534 ON_AC_POWER_RESUME started
1253358534 ON_AC_POWER_RESUME entered
1253358535 ON_AC_POWER_RESUME exited
1253358536 ON_AC_POWER_DAEMON exited
Hence it's obvious that in script ON_AC_POWER_DAEMON in branch
If (NOT ExternalPowered())
...
Else
the instruction
# turn device again into standby
Run( %TURN_OFF% )
never will be executed - and that's my question: WHY NOT?
---------------------
BTW: dotfred's taskmanager isn't Windows CE 5.0 Core compatible.
try with longer delay between adding those two notification events.
maybe the second events does not get installed.
Dear jwoegerbauer,
Thank you very much for your inspiration. I have been trying to find a not so difficult way to implement a similar solution in my PND. After seeing your work, it seems Mortscript would be a wonderful solution.
I usually run IGO8 on my PND and IGO8 has a built-in Standby function when external power off. Hence, I am more interested in the "external power on resume" part of your script. Just wondering whether I can run "ON_AC_POWER_DAEMON" and "ON_AC_POWER_RESUME" independently from "ON_AC_POWER_LOSS".
In addition, there is some mentioning of
1 POWERNOTIFIER_PROMPT.mscr
2 Sleep.exe
3 ToggleDisplay.exe
in your scripts. I did several Google search, but cannot find any source of those executables. Is it possible to pack a full working version (include all the scripts and executables used) for me to try and appreciate your amazing work please?
Thanks in advance.
http://www.mediafire.com/file/jodzwgn5tnc/ON_AC_POWER_TEST.zip
Many thanks for sharing the package. I have further modified them to make the DAEMON running continuously. The scripts will now perform as follows:
Ask the user whether they want to activate this Auto Power On feature.
If yes
The device goes to Sleep when no external power applies; and
The DAEMON will keep searching until external power detected and
Wake up the device
p.s. to exit from the loop, I use the Power Button to turn off and restart the device.
Code:
# ON_AC_POWER_MENU.mscr
# Implemented on MortScript (www.sto-helit.de)
# 2009-12-07
# Karako
# GNU General Public License (GPL), Version 2, June 1991
ErrorLevel("off")
Local()
Set ON_AC_POWER_DAEMON, "\SDMMC\ON_AC_POWER\ON_AC_POWER_DAEMON.exe"
Set RUN_APP, "\SDMMC\igo8\igo8.exe"
Set LOOP_SECS, 11
options[1] = "Skip Auto On/Off"
options[2] = " "
options[3] = "Engage Auto On/Off"
Sleep 100
SetChoiceEntryFormat(20, 16, "Verdana")
Choice("Auto_On_Off_Option", \
"^NL^AC Power Auto On/Off^NL^Choose whether you want the GPS device to be^NL^automatically fired up when External Power is supplied^NL^^NL^", \
options)
Case( 1 )
# do nothing
#
Case( 2 )
# do nothing
#
Case( 3 )
# kill old notification(s) to prevent overlap
RemoveNotifications( %ON_AC_POWER_DAEMON% )
Sleep 100
# run application
Run( %RUN_APP% )
# Wait for APP finish loading
Sleep 45000
ReRun = TimeStamp() + %LOOP_SECS%
RunAt( ReRun, %ON_AC_POWER_DAEMON% )
Sleep 100
Exit
EndChoice
# kill old notification(s) to disable this function
RemoveNotifications( %ON_AC_POWER_DAEMON% )
Sleep 100
Run( %RUN_APP% )
Exit
# ON_AC_POWER_DAEMON.mscr
# Implemented on MortScript (www.sto-helit.de)
# based on the script from jwoegerbauer 09/04/2009
# GNU General Public License (GPL), Version 2, June 1991
# modified by Karako 2009-12-07
ErrorLevel("off")
Local()
# adjust to your needs (must > 10 seconds !!!!)
Set LOOP_SECS, 11
Set ON_AC_POWER_DAEMON, "\SDMMC\ON_AC_POWER\ON_AC_POWER_DAEMON.exe"
Set ON_AC_POWER_RESUME, "\SDMMC\ON_AC_POWER\ON_AC_POWER_RESUME.exe"
Set TURN_OFF, "\SDMMC\ON_AC_POWER\Sleep.exe"
Sleep 300
# kill old notification(s) to prevent overlap
RemoveNotifications( %ON_AC_POWER_DAEMON% )
Sleep 500
# check AC power line state
If( NOT ExternalPowered() )
# set new notification queue
ReRun = TimeStamp() + %LOOP_SECS%
RunAt( ReRun, %ON_AC_POWER_DAEMON% )
Sleep 100
# turn device again into standby
Run( %TURN_OFF% )
Else
# call resume script
RunWait( %ON_AC_POWER_RESUME% )
Sleep 1500
EndIf
Exit
# ON_AC_POWER_RESUME.mscr
# Implemented on MortScript (www.sto-helit.de)
# based on the script from jwoegerbauer 09/04/2009
# GNU General Public License (GPL), Version 2, June 1991
# modified by Karako 2009-12-07
ErrorLevel("off")
Local()
# adjust to your needs ( must > 10 secs)
Set LOOP_SECS, 11
Set ON_AC_POWER_DAEMON, "\SDMMC\ON_AC_POWER\ON_AC_POWER_DAEMON.exe"
Set PLAY_SOUND, 0
Set WAV_FILE, "\SDMMC\ON_AC_POWER\notify.wav"
Sleep 100
If (ExternalPowered())
If (%PLAY_SOUND% )
PlaySound( %WAV_FILE% )
EndIf
# set new notification queue
ReRun = TimeStamp() + %LOOP_SECS%
RunAt( ReRun, %ON_AC_POWER_DAEMON% )
Sleep 100
#
EndIf
Exit
However, I experienced the same problem that the display will turn on and off itself for about 1 to 2 seconds in every cycle (about 10 seconds in my settings) when external power is not attached.
Is it possible to do a Registry tweak to force the display off when the device just wakes up by the Daemon to check for external power please?
I am thinking Registry keys like
HKLM\SYSTEM\CurrentControlSet\Control\Power\State\BacklightOff
or
HKLM\SYSTEM\CurrentControlSet\Control\Power\State\ScreenOff
Since I seldom work with Registry, really appreciate for anybody's guidance and hints.
@karako,
First of all you got the logic! You experienced the same inadequacies as me.
Secondly here's why I startet the project: For reason of comfort (when in car) I wanted to have my PND automatically put into sleep mode, when external power supply is lost, and in reverse put back again into active mode if external power is re-supplied, all this without the need to press the device's power button and regardless to device's power settings. Hence I didn't implement a menu.
Hope with you things will get working!
Hi jwoegerbauer,
Further research on the subject and review again deeply on your previous advice and work, gives me a strong feeling that the CeRunAtEvent could be a much better and straight forward approach in terms of power management.
Then I found this interesting article with sample codes:
http://www.codeproject.com/KB/mobil...&noise=3&sort=Position&view=Quick&fr=26#xx0xx
Unfortunately, when I execute the sample program (WakeUpStart.exe) in my WinCE 5.0 PND (Compact Framework 2.0 installed) and Windows Mobile 5.0 PDA phone (Compact Framework 3.5 installed), both experienced the same problem - the ACCEPT button doesn't work in the program and hence I cannot execute it.
The program was written in C#, a new language for me. I will try to trace the problem, but without Visual Studio IDE, I am afraid I can hardly debug it myself.
Let's see if anybody would be interested to carry on from here.
Oops. Apparently, some experts had already found that:
- ... not every event can be handled with CeRunAppAtEvent
- ... I assume it is OEM related and the implementation of these events is not mandatory
- ... did try to use ON_AC_POWER and it did not work
above extracted from the thread: http://forum.xda-developers.com/showthread.php?t=558152
This takes us back to the "check the PowerStatus structure for ON AC POWER" approach.
@karako,
there is a (freeware) tool for observing and fixing notification event queue on Windows Smartphone and Windows PocketPC devices: HooverNI.
http://code.google.com/p/hoover-ni/
Hope this hint will be useful for you.
any news on this issue? i am considering changing my GPS. and i think of WIN CE device. only thing that bothers me is automatic turn on and off with car ignition.
Hi, did anyone figure this one out? I have pocket navi with Windows CE 6 and the last script on 1st page works perfectly .. but only in Windows desktop, when I change to GPS overlay it doesnt work anymore, how can I make it work?
I found USB tethering to my laptop with wifi works fine but 3G does not. With 3G tethering I can connect but no data is transferred.
Same problem with 3G hotspot - no data is transferred.
I have read this 3G tethering problem is common for certain devices, particularly with Sony.
Has anyone else experienced this problem or have any ideas what the problem is?
In case relevant:
HTC Wildfire S A510b
Android 2.3.5
Virgin Mobile
just a thought - could this be caused by the APN settings?
The 3G internet works fine on the phone.
I tried my sim card in another phone and 3G tethering worked fine.
And I tried another sim card in my phone and 3G tethering didn't work.
So common factor is this phone.
hoju_ said:
I tried my sim card in another phone and 3G tethering worked fine.
And I tried another sim card in my phone and 3G tethering didn't work.
So common factor is this phone.
Click to expand...
Click to collapse
You have a SIM card? Are you in the US?
I'm in Australia. (most countries use SIM cards)
But problem seems to be the phone, not the SIM card.
hoju_ said:
I'm in Australia. (most countries use SIM cards)
But problem seems to be the phone, not the SIM card.
Click to expand...
Click to collapse
Well yes but in the US the phone is CDMA (no SIM), that is why I asked since you did not state what country.
With the US version Virgin disabled tethering on the phone, not sure if they did it there too.
Is your phone rooted? If so then you might could re-enable that function.
ah OK.
Phone is not rooted. I tried superoneclick but root failed.
That is very interesting some phones have tethering disabled.
Is there a way to check whether this is the case?
hoju_ said:
ah OK.
Phone is not rooted. I tried superoneclick but root failed.
That is very interesting some phones have tethering disabled.
Is there a way to check whether this is the case?
Click to expand...
Click to collapse
I know that hot spot is disabled in the build.prop but am not sure if that would also disable tethering. If you was rooted then you could copy you system folder so I could look at it to see.
Check with a local cell shop and see if they can unlock your cell with a XTC-Clip.
Phone is already unlocked, just not rooted.
HTC support said I needed to install HTC Sync on my computer to get 3G tethering working. Does that sound right?
I can't test because HTC Sync only supports Windows, which I don't have.
hoju_ said:
Phone is already unlocked, just not rooted.
HTC support said I needed to install HTC Sync on my computer to get 3G tethering working. Does that sound right?
I can't test because HTC Sync only supports Windows, which I don't have.
Click to expand...
Click to collapse
You might need the modem drivers for you OS to get the tethering to work. I will test this weekend to see since I never used tethering but have and do use hot-spot.
I experience the same problem for both 3G tethering and 3G hotspot - connects but no data transfer. And wifi tethering works, so I assumed it was not a driver problem.
Would it be worth trying a tethering app in case the problem is with the builtin software?
hoju_ said:
I experience the same problem for both 3G tethering and 3G hotspot - connects but no data transfer. And wifi tethering works, so I assumed it was not a driver problem.
Would it be worth trying a tethering app in case the problem is with the builtin software?
Click to expand...
Click to collapse
Can you copy you build.prop and pm it to me?
How would you recommend extracting the build.prop?
I understand it is located in /system/build.prop, but when mounting the phone on my computer this folder is not available.
I installed some build.prop editor apps where I can view particular properties, but they did not have a feature to copy the file elsewhere.
hoju_ said:
How would you recommend extracting the build.prop?
I understand it is located in /system/build.prop, but when mounting the phone on my computer this folder is not available.
I installed some build.prop editor apps where I can view particular properties, but they did not have a feature to copy the file elsewhere.
Click to expand...
Click to collapse
You should be able to use Es File Explorer or Explorer copy it to your sdcard folder then get thru you computer.
awesome - Explorer worked well. Here is the build.prop:
Code:
ro.ril.oem.ecclist=112,000,911
ro.ril.enable.a52=0
ro.ril.enable.a53=0
ro.ril.hsdpa.category=8
ro.ril.hsxpa=1
ro.ril.fast.dormancy.rule=0
ro.ril.radio.svn=2
ro.ril.disable.mcc.filter=1
ro.ril.emc.mode=1
ro.ril.disable.fd.plmn.prefix=23402,23410,23411,23420
ro.ril.enable.sdr=0
ro.ril.oem.show.act=1
ro.ril.enable.r8fd=0
ro.com.google.clientidbase=android-htc
ro.com.google.clientidbase.yt=android-htc
ro.com.google.clientidbase.am=android-telstra-au
ro.com.google.clientidbase.vs=android-htc
ro.com.google.clientidbase.gmm=android-htc
ro.com.google.clientidbase.ms=android-htc
ro.ril.vmail.50501=+61101
ro.product.model=HTC Wildfire S A510b
# begin build properties
# autogenerated by buildinfo.sh
ro.aa.rid=673
ro.cwkey=TELST001
ro.aa.skulist=841
ro.aa.customizationid=394070
ro.onecid=
ro.aa.mainsku=841
ro.aa.taskid=271810
ro.aa.report=com
ro.aa.romver=2.26.841.4
ro.aa.maincid=TELST001
ro.aa.modelid=PG7612000
ro.aa.project=Marvel_S
ro.aa.cidlist=TELST001
ro.com.google.clientidbase=android-htc
ro.build.id=GRJ90
ro.build.display.id=GRJ90
ro.build.version.incremental=362953.4
ro.build.version.sdk=10
ro.build.version.codename=REL
ro.build.version.release=2.3.5
ro.build.date=五 7月 13 18:54:53 CST 2012
ro.build.date.utc=1342176893
ro.build.type=user
ro.build.user=
ro.build.host=ABM018
ro.build.tags=release-keys
ro.product.model=htc wildfire s a510e
ro.product.brand=telstra_wwe
ro.product.name=htc_marvel
ro.product.device=marvel
ro.product.board=marvel
ro.product.cpu.abi=armeabi
ro.product.manufacturer=HTC
ro.product.locale.language=mdpi
ro.product.locale.region=
ro.wifi.channels=
ro.board.platform=msm7k
# ro.build.product is obsolete; use ro.product.device
ro.build.product=marvel
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=2.26.841.4 CL362953 release-keys
ro.build.description=2.26.841.4 CL362953 release-keys
ro.build.changelist=362953
ro.product.ua=
ro.build.fingerprint=telstra_wwe/htc_marvel/marvel:2.3.5/GRJ90/362953.4:user/release-keys
ro.build.project=Marvel_S:271810
ro.product.version=2.26.841.4
keyguard.no_require_sim=1
# end build properties
#
# system.prop for device
#
rild.libpath=/system/lib/libhtc_ril.so
# RilLibPath for Ganlite by Godel_Chen
rild.libpath.ganlite=/system/lib/librilswitch.so
rilswitch.vendorlibpath=/system/lib/libhtc_ril.so
rilswitch.ganlibpath=/system/lib/libganril.so
ro.ril.hep = 1
ro.ril.enable.dtm = 0
ro.ril.hsdpa.category = 8
# Modify MMS APN retry timer from 5s to 2s.
ro.gsm.2nd_data_retry_config = max_retries=3, 2000, 2000, 2000
wifi.interface = eth0
ro.ril.htcmaskw1.bitmask = 4294967295
ro.ril.htcmaskw1 = 14449
# Time between scans in seconds. Keep it high to minimize battery drain.
# This only affects the case in which there are remembered access points,
# but none are in range.
wifi.supplicant_scan_interval = 15
# density in DPI of the LCD of this board. This is used to scale the UI
# appropriately. If this property is not defined, the default value is 160 dpi.
#ro.sf.lcd_density = 120
ro.sf.lcd_density = 160
ro.com.google.locationfeatures=1
# The OpenGL ES API level that is natively supported by this device.
# This is a 16.16 fixed point number
ro.opengles.version = 131072
dalvik.vm.heapsize=20m
# Default network type
# 0 => WCDMA Preferred.
ro.telephony.default_network = 0
# View configuration for QVGA
view.fading_edge_length = 8
view.touch_slop = 15
view.minimum_fling_velocity = 25
view.scroll_friction = 0.008
# For SD storage insert notification sound
persist.service.mount.playsnd = 0
# For the agps default value
ro.ril.def.agps.mode = 2
# For 7227 projects ,default enable AMR-Wideband ([email protected]: WSD request to disable it by default)
# ro.ril.enable.amr.wideband = 1
# For no auto focus devices
ro.workaround.noautofocus = 1
# default value of brightness
settings.display.brightness=143
# For HSDPA low throughput
ro.ril.disable.power.collapse = 1
# For PDP overlap problem
ro.ril.avoid.pdp.overlap = 1
#
# This file describes the media capabilities and profiles
# using system properties.
#
# Note: The property key and value has some length
# limit as defined by PROPERTY_KEY_MAX and
# PROPERTY_VALUE_MAX, respectively
#
# WARNING: We may not use system properties for specifying
# media capabilities and profiles in the future
#
ro.media.enc.file.format = 3gp,mp4
ro.media.enc.vid.codec = m4v,h263
ro.media.enc.vid.h263.width = 176,640
ro.media.enc.vid.h263.height = 144,480
ro.media.enc.vid.h263.bps = 64000,1600000
ro.media.enc.vid.h263.fps = 1,30
ro.media.enc.vid.m4v.width = 176,640
ro.media.enc.vid.m4v.height = 144,480
ro.media.enc.vid.m4v.bps = 64000,1600000
ro.media.enc.vid.m4v.fps = 1,30
#
# Increase SKIA decode memory capability for progressive jpg file
#
ro.media.dec.jpeg.memcap = 20000000
# try to disable proximity sensor in call by default
#gsm.proximity.enable=false
# For FOTA setting (leave empty value to use default)
ro.htc.checkin.url = http://andchin.htc.com/android/checkin
ro.htc.checkin.crashurl = http://andchin.htc.com/android/crash
ro.htc.checkin.url_CN = http://andchin.htccomm.com.cn/android/checkin
ro.htc.checkin.crashurl_CN = http://andchin.htccomm.com.cn/android/crash
ro.htc.checkin.exmsg.url = http://fotamsg.htc.com/android/extra/
ro.htc.checkin.exmsg.url_CN = http://fotamsg.htccomm.com.cn/android/extra/
ro.htc.appupdate.url = http://apu-chin.htc.com/check-in/rws/and-app/update
ro.htc.appupdate.url_CN = http://apu-chin.htccomm.com.cn/check-in/rws/and-app/update
ro.htc.appupdate.exmsg.url = http://apu-msg.htc.com/extra-msg/rws/and-app/msg
ro.htc.appupdate.exmsg.url_CN = http://apu-msg.htccomm.com.cn/extra-msg/rws/and-app/msg
# Release Bluetooth HW/SW information
ro.bt.chipset = Broadcom BCM4329-B1
ro.bt.version = Bluetooth 2.1 + EDR
ro.bt.stack = Broadcom BTL-A
ro.bt.stack.version = 2.2.017
#0x10000010010100100000011 represent bt profile list
ro.bt.profiles = 4270339
# Properties of BTLA stack
service.brcm.bt.activation = 0
service.brcm.bt.srv_active = 0
service.brcm.bt.hcid_active = 0
service.brcm.bt.btld = 0
service.brcm.bt.btld_pid = 0
service.brcm.bt.avrcp_pass_thru = 0
service.brcm.bt.avrcp_toggle = 1
# AOLC
htc.audio.alc.enable = true
# Following property will be reference by Settings.
ro.product.processor=600MHz
ro.product.ram=512MB
ro.product.display_resolution=3.2 inch HVGA resolution
ro.product.main_camera=5M
ro.product.front_camera=NA
ro.product.bluetooth= 3.0
ro.product.wifi = 802.11 b/g/n
# update the acoustic table for Buzz NEL lab testing
ro.ril.update.acoustic.table = 1
# For opensense sdk
ro.htc.common.version = 2.1.0.0
#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.setupwizard.mode=OPTIONAL
ro.config.ringtone=QuietlyBrilliant.mp3
ro.config.notification_sound=Zeta.mp3
ro.config.alarm_alert=NewDay.mp3
ro.config.cal_notification=Epsilon.mp3
ro.config.msg_notification=Gamma.mp3
ro.setupwizard.mode=DISABLD
ro.com.google.gmsversion=2.3_r7
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
From your build.prop they did not set a disable flag for hot-spot or tether. The only other thing I can suggest is try a different Rom on you device, but backup your current one First.
You can try this:
Code:
adb shell
rm -r /data/local/tmp
ln -s /data/ /data/local/tmp
exit
adb reboot
adb shell
echo 'ro.tether.denied=false' > /data/local.prop
exit
adb reboot
Then try tethering again.
darn, that sounds complicated.
Thanks for checking the build.prop
hoju_ said:
darn, that sounds complicated.
Thanks for checking the build.prop
Click to expand...
Click to collapse
Try this:
Code:
adb shell
rm -r /data/local/tmp
ln -s /data/ /data/local/tmp
exit
adb reboot
adb shell
echo 'ro.tether.denied=false' > /data/local.prop
exit
adb reboot
I understand that adb process requires root.
I tried superoneclick, unlockroot, and unrevoked to try and root the device, but all failed.
Are there other options?
hoju_ said:
I understand that adb process requires root.
I tried superoneclick, unlockroot, and unrevoked to try and root the device, but all failed.
Are there other options?
Click to expand...
Click to collapse
Check this link on CDMA S-OFF.
Hello XDA users, deciding to post this here because i figured it could get some use/i could get some feedback
(Placing it in general because i honestly dont think it could work anywhere else)
Basicly over the past few months ive been taking my multiple script for android, & rewriting/compressing into 1 library
& adding features/functionality that i consider useful. This script has never touched a PC, & only been written on android
(BTEP & DroidEdit Pro), & is designed to:
A.) Extend the basic terminals functionality.
B.) Extend customized scripts, & making scripting semi-easier.
C.) Offer multi-device compatibility while keeping origional functionality.
The script is capable of determining all critical variables on initialization, from
partitions (both mount name, & partition number can be easily obtained), OS/ANDROID version/type
Execution mode (source/exec), Autodetect instigator (Eg: boot, script, shell, etc.) If present, Execution level,
Etc, seamlessly before scripts execution, & modify its own execution accordingly.
The script can be used in a similar method to busybox (Eg, can be called directly, or through symlink
(Symbolic link) using functions name, & allows adding multiple switches at runtime which can totaly
Customize execution without touching a configuration (yes, it does support configurations).
Or for script/shell, can be sourced for max performance & increased functionality.
This script is designed to be as native as possible, & only requires busybox/toolbox, & bash (4.1+)
(Systems default/sh) is not sufficient.
Readme (1/2, Read 2nd post):
Code:
----------------------------------------------------------------------------------------------------
Table of contents:
1.) Basic information
2.) Installation
3.) Usage
3a.) Basic commandline switches
4.) Included functions & definitions (Execution)
4a.) Included functions & definitions (Source only)
##########################################################################################################
Basic Information 1.
SuperBox is a multi-call, multi-execution function library (think busybox with bash & sourcing),
built on ANDROID, For ANDROID, Designed to increase script efficiency, & offer "unstandard"
multi-device functionality, & some functionality considered "missing" from ANDROID/Linux by default.
##########################################################################################################
Installation 2.
Superbox is designed to be easy to install/use, and requires very few steps/dependancies to install.
Before installing, please check this small list of prerequisites & insure you have the required
dependancies to ensure correct installation, the following are required:
a.) BASH 4.x (4.0+) installed & linked to '/system/bin' & '/system/xbin', Systems default is not
sufficient & cannot support SuperBox in all needed areas.
b.) BusyBox 1.18+ (tested on v1.19.4), Please ensure toolbox is also fully installed.
c.) Device must be rooted & running S-off (insecure kernel, read kernel documentation)
This part can be bypassed if installing through recovery. Some features will be limited.
d.) SuperBox is a terminal/script expansion toolkit, as such, a terminal emulator (Such as BTEP aka:
Better Terminal Emulator Pro, or similar) is recommended for optimal usage.
if your device can meet the above requirements, you are ready to install.
To install, simply move the downloaded script (superbox, or superbox.txt) to either '/system/bin', or
'/system/xbin', if the downloaded file has an extension, remove it.
Set permissions to 755 (rwxr-xr-x), Once complete, open your preferred terminal, & type 'su -c bash'
once in bash, type 'superbox' (or whatever you named the script), or 'superbox --info', if the operation
succeeded without error, you can begin full installation, Simply type either:
'superbox --install', or 'superbox --install <FUNCTION> to fully install, or install specific function.
See section 3a (Basic commandline switches) for full list of available switches, or section 4
(Included functions) for list of executable functions.
##########################################################################################################
Usage: 3.
SuperBox allows multiple methods of execution, & preferred method is left completely up to the user.
Sourcing:
SuperBox can be sourced either in terminal, or script, using something similar to
'. superbox', or '. ./superbox' if kept in unstandard path. if sourcing in terminal & script appears
to continue to execute, Try adding '--noboot' switch (see section 3a).
Script allows extra functionality not typically available in execution mode.
Execution:
this is the most typical use for superbox, & as easy as typing 'superbox <function>' or '<function>'
when fully installed. For list of all available functions, use 'superbox --list' to generate full list
of available applets, Please note that when using '--list' or even app count when using '--info' is
only listing execution type applets, Source functions are NOT included in this list.
----------------------------------------------------------------------------------------------------------
Basic commandline switches 3a.
SuperBox allows adding additional variables through commandline to modify per-execution variables,
Without editing a configuration, or worrying about recurrent changes. These variables effect a wide
range of scripts functions, & are available in 2 levels,
1.) SuperBox switches:
These switches effect the script as a whole, & are listed/added by the double-hyphon prefix ('--')
These are the only switches listed in this readme, for individual functions switches, please use
'superbox <function> --help' or '<function> --help' if fully installed.
1.) Function switches:
These switches only effect the function being processed, & are listed by a single-hyphon ("-"),
These are not available in all functions. Function switches should be used after superbox switches.
SuperBox switches:
The following MUST be passed as MODE & must be called directly from SuperBox, Eg:
'superbox --<MODE>', Not capable of being passed as variable.
install | Usage: '--install <FUNCTION> --installto={PATH}', Generates symbolic link for FUNCTION in
| PATH, if no FUNCTION specified, installs all, if no path, Default is used.
remove | Usage: '--remove <FUNCTION>', Opposite of above, Removes link for specified function.
| Scans system to find symbolic link, use '--full' switch to scan full recursive.
chkbb | Checks install status of busybox, & capable of generating missing links, use '--fix' to
| auto repair any/all missing links.
version | Displays installed SuperBox's version.
list | Lists all included execution-capable functions included in current version.
The following are to be used after mode (function listing), Eg: 'superbox <MODE> --<SWITCH>' or
'<MODE> --<SWITCH> when fully installed.
debug | Forces debugging on script (uses 'set -x' command), applies to script as a whole.
bb/tb | Pre-determines which busybox/toolbox versions to use, Must be used as '--bb=/path/to/file'
| or '--bb/path/to/file', Specifying invalid input will restore defaults when executing.
color | Default Colors for modes allowing color. sets color based on position in strings, Eg:
| '012345678' (upto 9 characters) where: 0=Error, 1=Note/Highlight, 2=Note2, 3=Normal,
| 4=File, 5=Path, 6=Link, 7=Background, 8=border, use pound (#) in place of unused spacing.
| for full listing of colors, Please see 'manfunc Col'
nocolor | Overrides above switch, & disables color in all segments.
installto | Modify install location for current component. (Used as '--installto={PATH}')
| MUST be used after install mode (Effects most file-based sections).
file | Usage: '--file="{/FULL/PATH/TO/FILE}"', used to set file path/name for specific segments
| Only effects segments where single-file processing is key.
local | Usage: '--local=\"{PATH\"', Assign path to use as local directory.
home | Usage: '--home=\"{PATH\"', Assign path to use as home directory, Use above over this.
time | Usage: "--time='{FORMAT}'", Specify time format (see '--timef'), (used for Lecho, etc.).
timefull | Usage: "--timef='{FORMAT}'", Specify full time/date format for script. %Y=4-digit year,
| %m=2-digit month, %d=2-digit day, %H=2-digit hr (24hr), %l=hour (12hr), %M=2-digit min,
| %S=2-digit seconds, %h=print month, %l=hour (12hr), %a=3-char day, %c=full (default).
log | Usage: '--log=<LEVEL>', set logging level/mode for script. *BROKEN, DONT USE*
logfile | Can only be used with '--log' greater then 1. Usage '--logfile=\"{PATH/FILE}\"'
tmpfile | specify temporary file to use for processing some segments.
tmppath | specify temporary path to use when needed for processing some segments.
list | Lists all included execution-level functions in current build.
help | Use immediately after <APPLET> to display information & usage on selected applet, Some
| applets will only display partial information by default, Use '--full' after help to
| display full information on specified function.
fix | Multipurpose switch, Allows bypassing non-critical errors, allows repairing any/all
| fixable errors, & serves to aid some functions.
silent/q | silences most (non-critical) output from STDOUT.
##########################################################################################################
*NOTE
some functions might not be considered 'main stream' or correct, but through trial & error, seem to work
Best with the chosen method.
Some functions are a WiP, might not be functioning correctly.
If you experience an issue, or have a suggestion, Please let me know.
**EDIT**
Updated, most functions should work correctly now.
Readme (2/2):
Code:
Included Functions (Execution) 4.
alignapk <file>
> Automaticly align <file> if specified, or all installed apks otherwise. can specify specific apk, or
simply apk name if apk is installed. Ex: 'alignapk systemui' is equivalent to
'alignapk /system/app/SystemUI.apk", extension (apk) is not needed, if path is specified, must be case
specific, otherwise alignapk will attempt to process case insensitive. Script will generate a SQL
database by default, but can specify text-based database with customized settings (See default config)
bam <Process1> <Process2>...
> kill any running processes matching specified input. Partial matches are supported, Eg:
'bam media' can kill 'android.process.media', aswell as any/all packagenames including 'media'
baseext <FILE> <MODE>
> echos the base extension of <FILE> if no MODE specified, or filename without extension if <MODE> is 1.
Anything else will display File with 'MODE' as extension, Eg: 'baseext ex ample' will return ex.ample
bar <var1> <var2> <var3>..
> displays accurate progress bar on screen, with the default terminal width as overall length.
Supports multiple customizable parameters. Only supports duration & strict percentage in current
build, More uses will be added in future builds (Eg: watch process, count, etc). Supported switches:
-t | Specify total time to run the bar, Usage: '-t=' where '' is scripts duration.
-p | Specify strict percentage to display (dont count) Eg: '-p60' will display 60% progress & quit.
-e | Specify displayed text when running the bar, multiline supported, can use script variables.
-d | Specify ASCII character to use for generating progress bar. default is '='.
-w | Override default width to use when processing bar, default is terminals width.
-n | Show progress Percentage (%) rather then progress bar (-b works as the oppisite)
-s | Display incrementing progress bar (jumps by ~1%) rather then the per-increment jump.
-k | same as '-s', but shows percentage at end of bar. (will increase exec time)
basepath <PATH>
> echos the base path or mount point (closest to rootfs) of <PATH>
byte <BYTES>
> Automagicly calculates Bytes(B)/kilobytes (Kb)/Megabytes (Mb)/Gigabytes (Gb) based on
on given Number in 'BYTES' on the *1024 principle, Eg: 'byte 1024 = 1Kb', Supports decimal places,
& maximum decimal points can be modified by 'MaxDec=' variable. Uses rounding to strip access.
Using '0' as 2nd variable will remove non-numaric characters from return (Eg: 'Kb/Mb/Gb/etc.).
Using '1' as 2nd variable will seperate non-numaric & numaric characters (Eg: '1Kb' would b '1 Kb').
calc <VAL EXPR VAL> or echo "VAL EXPR VAL"|calc
> similar basic functionality to 'bc', mini calculator script using 'awk' & 'printf', Supports Piping,
(function|function), float integers (decimals) & multiple types of arithmatic.
chrg_type <MODE>
> Quickly determines where the device is currently getting power from. Following modes are supported:
0 = Quiet output, returns 0-2 for Battery/AC/USB respectively.
1 = similar to '0', but displays code Aswell as return code.
2 = displays source (Eg: Battery/AC/USB), all other modes will simply display string.
chkdir <PATH> <PERM> <OWNER.GROUP>
> Checks existance of <PATH>, calls 'mkdir -p' if not exist, & sets permissions <PERM>
(numaric) when creating, & sets owner/group if spedified.
chksize <MOUNT> <CHECK> <ECHO>
> Checks if <MOUNT> has <CHECK> mb free (good for checking before extracting/installing). Returns 1/0
accordingly. set <ECHO> to 0 to use errorcode & disable echoing to STDOUT (if statment, (echo $?))
chkstate <INPUT> <EXEC_CMD>
> Determines if <INPUT> is available for script use, able to detect functions, aliases, links, binaries,
files, Variables, etc. specify <EXEC_CMD> to exwcute <INPUT> if detected. (binaries/functions/etc.)
Col <STRING> <MODE> or Col <STRING>
> Used for colored text Replace 'Col' with either: Bla(ck), Blu(e), Red, Gre(en), Whi(te), Mag(enta),
Cya(n), Yel(low). Ex: 'Bla "sample text" 1', Available modes are: 1=Bold, 2=Underline, 3=colorfill
(switches background/text), 4=no newline, 5=bold (no newline), 6=underline (no newline).
columns <MODE>"
> prints available columns, Set <MODE> to 1 to print number of lines (height of prompt).
conv <celsius|fahrenheit> <TEMP>, or conv <F> <T> "<STRING>"
> a rather bloated conversion script capable of converting tempuratures, or string to various formats.
-When converting tempuratures, both 'conv c 100', & 'conv 100c' are correct & will output sum
-When converting string, 'F' (From) & 'T' (To) must be specified to begin calculation.
'F' & 'T' can be one of the following: 'a' (ascii) (normal text), 'b' (binary, outputs 8-digit binary
code for each character specified), or 'h' (hexadecimal), when processing from hex, 4th variable
specifies preceeding character(s) to add to each return (default is '\x'), if set to 0, no characters
are added to string, only 2-digit hex is returned, For example: 'conv a h hello' (no 4th variable)
returns '\x68\x65\x6C\x6C\x6F', while 'conv a h hello 0' returns '68656C6C6F'.
divider <LENGTH> or divider -d<CHAR> <LENGTH>
> generates a bar (String of character(s) or CHAR if set), <LENGTH> characters long, if no LENGTH set,
total width of terminal window is used. Use '-d<CHAR> to customize character, Default is pound ('')
Eco <ABCDE> "TEXT"
> Echos <TEXT> with specific atributes, based on <ABCDE>, where: A=Line only [0|1], B=no newline[0|1],
C=(Bold[1], Underline[2], None[0]), D=Text color, E=Background color. Valid colors include:
0 - black, 1 - Red, 2 - Green, 3 - Yellow, 4 - Blue, 5 - Magenta, 6 - Cyan, 7 - White
ex <path/to/file>
> Extract archive to designated path, & even allows recompiling. use '--help' for more information.
exist <INPUT>
> Attempts to detect input & gives return code depending on findings Eg: 3=Dir, 2=Link, 1=File, 0=none.
fdate <INPUT>
> Same usability as 'busybox date -r', Returns modified date of <INPUT> Output can be adjusted
using '--timef' switch.
FixCl
> Returns color to normal, regardless of user-preset defaults.
getblock <MOUNT_NAME>
> Simply echos the block ID of requested point, saves a lot on scripting & allows true multi-device
compatibility. Usage as: 'getblock system'
gnasty <OPTIONS> <PATH>, Or 'gnasty <PATH>'
> Searches for files/paths with names containing invalid characters such as
[+ { ; " \ = ? ~ ( ) < > & * | $], Prints any/all links, includes full path by default. Modes include:
-d - specify directory, used as '-d={PATH}', not needed in most cases.
-m - Max search depth from directory, cannot be less then 1 (default). Usage: '-m' or '-m='.
-i - Display files inode (index number), useful for looping output to irm.
ipath <path>
> Will auto-correct <path> to case-sensitive (if exist) when input does not match case
(case-insensitive path correction through function)
irm [-irRfna] FILE, or 'irm FILE'
> remove (unlink) FILE using inode (index number). used for files/paths with illegal
characters in the name, (Eg: '+ { ; \" \\ = ? ~ ( ) < > & * | $'). The following modes are supported:
-i - Always prompt before removal | -f - Never prompt before removal
-r|-R - Remove file(s)/path recursively | -a - Only use name (no inode, replicating busybox rm)
-n - Ignored, used solely for script use.
is_num <STRING>
> Checks if 'STRING' is numaric (Contains only numbers), Returns 0 if true, 1 otherwise.
Can use '1' as second variable to echo result aswell as return code, eg 'is_num <STR> 1'.
lc "<INPUT>"
> Switches input to all lowercase, supports whitespace/newline, no limitations.
Lecho <MODE> <TEXT> <FILE1> <FILE2>
> Used to pipe text to log (while removing color/string data) & terminal.
If no file specified, Simply replicates echo with log header. Supports the following headers:
1=' : ' (default), 2='[!]' (error), 3=' > ' (note), 4=' ' (continuation).
lperm <PATH|FILE> <MODE>
> Execute user pre-generated configurations (mperm) based on input, can choose to either restore whole
path to configured state, or simply process 1 file from said config.
set <MODE> to 0 to disable recursive loading (dont descend into subdirectories).
manfunc <function>
> Displays available information for selected function, Operates identical to: '<function> --help'.
many <TEST> <STRING>
> Determine how many times <TEST> appears in <STRING>
md5 <string>
> Generates md5 hash from string (or filename).
mk <path/to/directory_or_file_to_archive>
> Use 7-Zip to build specified archive efficiently through script. While keeping full functionality
(and even adding), Supports 7z, zip, xz, bzip2, gzip, tar, & wim archive types. use '--help' for info
mod <OPTION> <var1> <var2>
> Modifies particular segments of device: Following options are supported:
b | brightness Modifies LCD (Display) brightness NOT supported on some devices.
display | Modify current pixal density, Eccepts numarical value (like lcd.density in build.prop),
Changes are made on the fly, & will reset all open applications, use with caution, can use
'reset' to reload default density from build.prop, Usage: 'mod density <value>'.
mperm <PATH|FILE> <MODE>
> Generate configuration for specified input, recording type, Permissions, Owner & Group, These configs
can then be loaded at any point specified, or ondemand using lperm, Supports the following modes:
0=non-recursive, 1=ignore errors,
myip
Display devices current IP, using nothing but wget, making it the trimmest ip oneliner around :)
ofcourse, internet connection is required.
nocl <STRING>
> Removes color variables from <STRING> to allow recording dato to log.
pinfo <NAME> <MODE>
> Neatly Prints process information for specified <NAME>, Supports the following modes:
1=Display PID (replicating pgrep), 2=Displays processes full Name, 3=Displays Parent Ppid,
4=display all options, 5=Display processes adj lvl, 6=Displays current State, S=sleeping, R=running,
7=Displays Owner, 8=Displays the Group (if set).
pos <VAL> <STRING>
> Displays start point(s) of 'VAL' in string, If multiple instances are detected, prints all starting
points seperated by customizable delimiter (Default is " " (whitespace)). If using custom delimiter,
('-d' switch), switch MUST be passed as first variable & specified as '-d%' where '%' is the new
character to use, Eg: instead of: 'pos hi hellohiwatup', Use: 'pos -d% hi hellohiwatup'.
Only effects multiple occurences of 'VAR'.
printl <FILE> <START> <END>
> Prints specific line(s) from FILE, If END is unspecified, prints 1 line, Otherwise prints from 'START'
to 'END', Using 'EOF' for 'END' will print to end of 'FILE', Using 'C' for 'START' will count lines.
pwr <mode>
> Advanced power control, with additional modes, which should work on multiple devices, Available modes:
reboot | reboot device, can use 'reset' aswell with same effect. can use 'hot' as 3rd variable to
perform hot reboot (still performs sync), simply reboots OS without rebooting kernel.
off | shutdown device, does exactly as stated.
download| Reboot into download mode. Might not be supported on some devices.
recovery| Reboot into recovery mode. Might not be supported on some devices.
wipe | Wipes cache/dalvik, then performs full reboot.
fc | Set fast-charge mode (needs kernel support), Eg: 'pwr fc 1' to enable, 'pwr fc 0' to disable
Using 'pwr fc' will display status, or support if unsupported.
rand <LENGTH> <MODE>
> Output random string 'LENGTH' characters long (Default is 32), if 'Mode' is unspecified, or is
Invalid, Output will consist of all printable characters. The following modes are available:
0 - Only print Letters (Upper & lower case) & digits
1 - Only print Letters (Upper & lower case)
2 - Only print digits
3 - Only print letters (Upper case)
4 - Only print letters (Lower case)
readperm <STRING>
> Opposite of 'showperm', displays permissions level from readable string. Easier to use switch
(& even switch again). Sticky/"special" fully supported. Again, 'switch' is easier/cleaner to manage.
remount <MODE> <0|1>
> remounts system & rootfs in specified mode, Second variable in string is unneeded But determines
check state, 1 will use rootfs as check, 0 will use '$System' (default), Use '--help' for more info
rootrw/rootro
> Mounts 'rootfs' as R/W (Read/Write) & R/O (Read/Only) respectively, similar to miniscripts included
in most Roms, With the exception that it utilizes the autodetection available in script, & should
work on any device/rom.
setlength "<STRING>" <POSITION> <LENGTH>
> displays the adjusted value of <STRING>, & should be under <LENGTH>,
autocorrects/centers based on given input, If no length is specified, 'Cw' (Common width) is used,
or scripts cefault. for position, -1 is right, 0 is left, 1 is center.
setown <FILE|PATH> <OWNER.GROUP>
> Glorified chown, With logging support.
setperm <FILE|PATH> <PERM>
> Glorified chmod, With logging support.
setprops
> Similar functionality to 'sysctl' Set system properties from configuration.
Can use '--file' to Specify reference file.
setval <VARNAME> <POINT> <FORCE> <POINT2> <FALLBACK_VALUE>
> Set values on system files, up to 2 points can be set for a variable, Can also specify fallback
If no value set in VARNAME. and no default, VARNAME, is used to reference the variable in error
sha256/sha512 <string>
> Generates sha512/sha256 encoded hash from string, similar to 'md5' function.
showperm <PERM_STRING>
> Displays permissions string in readable form from input, sticky/"special" notes are fully supported.
Switch is easier to use & capable of doing both.
size <MODE> <POINT> <[1,MB|2,AUTO|*,KB]>
> Echos the value of specified mode on specified <POINT> (modes 1-4 are for mount points).
If incorrect mount specified, Returns errorcode. Automaticly fixes missing '/' on specified mount if
not present. Third variable specifys out format. 1 is Mb, 2 is auto (kb/mb/gb with tags), * is kb
only (default), Following Modes are supported: 1=Full size, 2=Used space, 3=Used %, 4=Free space,
5=Size (use for files/paths, will not work on mounts, added '5' on request).
stype <INPUT>
> Defines file type & offers return code based on existance. Returns the following:
0=no input, 1=File, 2=Function, 3=Keyword, 4=Builtin, 5=Directory, 6=Variable, 7=Unknown/not exist.
switch <STRING>
> Switch permissions string from either human readable (rwxrwxrwx) or Numaric (777), or vice versa.
sysrw/sysro
> Mounts '/system' as R/W (Read/Write) & R/O (Read/Only) respectively, similar to miniscripts included
in most Roms, With the exception that it utilizes the autodetection available in script, & should
work on any device/rom.
sput <mode> <option1> <option2>
> large function resembling 'tput', rebuilt for 'light' or dumb terminals, should work for most scripts
requiring tput, use 'sput --help' for more information on available options.
toggle <string>
> Checks if <string> can be considered a "true or false" statement, eg: 'toggle 1' would be '0',
'toggle yes' is 'no', 'toggle on' is off, etc. Uses 'togglevars' string. case inspecific.
tree <path>, or tree --arguments -triggers <path>
> Displays directory information based on user input, if no input specified, Current path is used.
Allows using 'tree.cfg' in '$LocalPath' directory. Use '--help --full' for more information.
truncp [-f] <path> <length> <symbol>
> Truncate <path> to <length>, & prepend <symbol> to beginning when truncated. Default <symbol> is ".."
If '-f' switch is used, Path is truncated to <length> specificly, no exceptions, otherwise splits at
closest base to <length> (default length is 20), Eg: 'truncp /system/etc/SuperBox 12' will return:
'../SuperBox', & 'truncp -f /system/etc/SuperBox 12' will return '..c/SuperBox' (12chars precisely)
Output must never exceed <value>, Truncation does not occur unless <path> is over <length>.
uc "<INPUT>"
> Switches input to all uppercase, supports whitespace/newline, no limitations.
Included Functions (Source Only) 4a.
Please note that the functions listed here might not be a complete list of available applets for use in
source mode, & the applets listed here are unavailable in execution mode due to limitations of bash
script handling (Only available when sourced or sourced through script).
cd <path>, or cd <var> <path>
> works as a replacement/extension to shell's builtin. can auto-cd to files path if file is specified
& supports additional (unstandard) functionality, while keeping origional functionality fully intact.
Supports the following variables:
> -l | follow links to home path. (eg: 'cd /etc' would cd to '/system/etc'), defaults as on.
> -p | dont follow links to home path (oppisite of above, cds to given input).
> -c | process case insensitive (Eg: 'cd /SYSTEM/ETC' would cd to '/system/etc') Default is off.
> -m | make path if path doesnt exist, then cd to created path (nofail cd).
Variables can be passed either united, or seperate, & in any order, Eg: '-l -p -m -c' or '-lpmc'
error <id> <string1> <string2>..
> prints error message to stderr based on error 'id'. available ids can vary with build & it is not
recommended to call this function, for compatibility reasons, only ids that are garunteed to remain
unchanged are, '-1' (self-defined, no error notice), & '3' (self-defined with error notice).
Error ID & definitions start at line ~157, & continue to 'END_ERR' & can be previewed with 'printl'.
getsizes <base-size>
> used for generating spacing when generating menus in a uniform fashion, if 'base-size' is unspecified,
Script will use terminal width instead. Exports the following variables:
Cw - Custom width, overall width of panel (base-size, or columns)
Ws - Workspace, Width of 'Cw' Minus borders (Side1/Side2 & Edge) (if set).
Side - Width of sides ('Ws'/3), Use for left/right on 3-column menu.
Middle - Width of middle ('Ws'/3 & adjusted for uneven width), Use for left/right on 3-column menu.
Left - Width of left ('Ws'/2'), use for 2-column menu.
Right - Width of right ('Ws'/2 & adjusted for uneven width), Use for 2-column menu.
getvals $*
> used for functions eccepting runtime variables, & offers extended customizations when compared to
using 'shift' & 'if/case' statements. Only requires a nested 'ctrigs' function determining all
applicable switches, & a note to 'ctrigerr $1' on undefined. all additional variables passed to this
function are exported to V{1..20}. (script allows up to 20 variable/switch combinations by default).
'getvals' will auto-clean all previous user-variables before start, & clean all unused when done.
inpth <VARIABLENAME> <DEFAULTPATH>
> Checks if 'VARIABLENAME' has a directory, if not, sets 'VARIABLENAME' to 'DEFAULTPATH/VARIABLE'
used for defaulting files to correct locations, 'VARIABLENAME' must be variables name, & must be set,
setclock <mode>
> can pass variable as mode, allows '0/1' as values, exports either 12hr (0), or 24hr (1) formatted
variable (variable name 'Time') for use with 'date' Eg: 'date +$Time'
up <path> <count>
> replicates 'cd ..', if no variable passed, cd's up one level from current directory, if 'path' is
specified, cd's up 1 level from 'path', or 'count' levels up from either.
Use as either 'up', 'up <count>', 'up <path>', or 'up <path> <count>'.
Configurations:
Configurations are unneeded for execution, but can be used to set default values
To use during execution
By default, configurations are read from:
'/system/etc/SuperBox' > main (system) configurations.
'/data/local/SuperBox' > user (writable) configurations.
User configurations will override system configurations if exist.
Main configuration (SuperBox.cfg):
Code:
#======================================================================#
# __ #
# Main configuration for: /\ \ #
# ____ __ __ _____ __ _ __\ \ \____ ___ __ _ #
# / ,__\/\ \/\ \/\ __`\ /'__`\/\`'__\ \ '__`\ / __`\/\ \/ \ #
# /\__, `\ \ \_\ \ \ \_\ \/\ __/\ \ \/ \ \ \_\ \/\ \_\ \/> </ #
# \/\____/\ \____/\ \ ,__/\ \____\\ \_\ \ \_,__/\ \____//\_/\_\ #
# \/___/ \/___/ \ \ \/ \/____/ \/_/ \/___/ \/___/ \//\/_/ #
# \ \_\ By: YupitsMine420 #
# \/_/ #
#======================================================================#
# File definitions: #
# can use full path, or script variable to define. not read by default.#
# #
# Used for 'setprops', Similar functionality to sysctl, sets system #
# properties from configuration file. #
# Prop_File: $LocalPath/SystemProps.cfg #
# #
# Used for chkbb, when generating missing links, all links generated #
# are written to this file for easy uninstall #
# BusyBox_File: $LocalPath/BusyBox_Add.cfg #
# #
# Specify custom BusyBox/ToolBox binaries for script to use #
# #
##Use_BusyBox: $System/etc/SuperBox/bin/busybox1210 #
# Use_ToolBox: $System/stest/Data/bin/toolbox #
# #
#======================================================================#
#
# Permissions configurations
#
# Paths:
Perm_Src_Dir=755 # Source paths.
Perm_Cfg_Dir=644 # Configuration paths.
Perm_Bin_Dir=775 # Binary (executable) paths.
#
# Files:
Perm_Src_File=644 # Sourcable files.
Perm_Cfg_File=644 # Configuration files.
Perm_Bin_File=755 # Binary (executable) files.
#
DefOwner=root # Default owner.
DefGroup=root # Default group
#
#======================================================================#
#
# Basic configurations:
#
# User configuration path, should be R/W by default (usually '/data').
# Configurations in this path will override base configurations.
LocalPath='$Data/local/SuperBox'
#
# Set scripts clock format, 0=12hr, 1=24hr.
use_24hr=1
#
# Enable/Disable colors in all segments. 1=enable, 0=disable
ColorMode=1
#
# Specify default Colours for modes allowing colour. Format is:
# '0 1 2 3 4 5 6 7 8', where: 0=Error, 1=Note/Highlight, 2=Note2,
# 3=Normal, 4=File, 5=Path, 6=Link, 7=Background, 8=Borders.
DefaultColors=(1 3 6 2 6 4 5 0 5)
#
# Set how many decimal points to allow in arithmatic calculations,
# used in (most) filesize segments. Default value is "2"
# Set to '0' to disable float integers (round to closest full number)
MaxDec=2
#
# Sets path used to store/load permissions configurations for 'm/lperm'
# these configurations are device specific & should not be ported or
# re-used outside of this ROM. Path set below should be constantly R/W.
PermDir="$LocalPath/Perms"
#
#======================================================================#
#
# SuperBox specific Configurations:
#
# Scripts default log method, 0=disabled, 1=critical, 2=full.
sbox_log_level=0
#
# sloggers default log method, '%' fits to width,'-' quiets output.
# (only outputs to log) only effects terminal.
sbox_log_mode=
#
# Specify if date should be appended to log name when generating.
# string is manipulated with 'sbox_log_tag' variable
# With the default value of '%a-%h-%d_%H-%M'
sbox_log_usedate=0
#
# if old log exists, append new data to the end when enabled.
sbox_log_append=1
#
# Allow superbox to be called by cron (startup), 1=Enable, 0=Disable.
sbox_allow_boot=1
#
# specify if SuperBox requires administrator on launch.
sbox_need_admin=1
#
# Link names that will be treated as direct call to SuperBox, Eg:
# Wont be treated as execution mode (links must be manually generated).
sbox_null_links="sbox2 superbox sbox.old sbox.new"
#
#======================================================================#
#
# cd (icd) Configurations:
#
# Specify if 'cd' should check match path/name case-sensitively
# Default is '1' (true), should use '-c' instead of changing this.
icd_usecase=1
#
#======================================================================#
#
# alignapk (zipalign) configurations:
#
# Zip alignment configurations:
# Zip default alignment level, 0 = disabled, 1 = auto, 2 = forced.
align_level=2
#
# Use MD5 sum for each file when processing align. 1=true, 0=false
align_usemd5=0
#
# Use SQL table for storing data, 1 = true, 0 = text database
align_usesql=1
#
# SQL table name to store configurations
align_table=zipalign
#
#======================================================================#
#
# Other (Misc.) Configurations:
#
Tree configration (tree.cfg) (can be appended to main configuration):
Code:
#======================================================================#
# __ #
# Tree configuration for: /\ \ #
# ____ __ __ _____ __ _ __\ \ \____ ___ __ _ #
# / ,__\/\ \/\ \/\ __`\ /'__`\/\`'__\ \ '__`\ / __`\/\ \/ \ #
# /\__, `\ \ \_\ \ \ \_\ \/\ __/\ \ \/ \ \ \_\ \/\ \_\ \/> </ #
# \/\____/\ \____/\ \ ,__/\ \____\\ \_\ \ \_,__/\ \____//\_/\_\ #
# \/___/ \/___/ \ \ \/ \/____/ \/_/ \/___/ \/___/ \//\/_/ #
# \ \_\ By: YupitsMine420 #
# \/_/ #
#======================================================================#
#
# Directories script will avoid, script supports partial matches when
# processing these paths. individual entries should be seperated by (":").
# 'bad_files' & 'bad_links' variables can also be defined to ignore said entry
tree_bad_dirs=":/proc:/dev:/sys:/:"
#
# Force processing any input, even if entry exists in 'tree_bad_*' variable(s)
tree_skip_check=0
#
#
# Used to connect same-depth paths when processing sub-directories &
# files, Default is "|", should be quoted.
tree_ui_con="|"
#
# Used as padding for filenames/etc. to match depth.
tree_ui_dep="+=>"
#
# Seperates file/link/date/size information when displaying tree.
tree_ui_sep="-->"
#
# Specify how tree will process links when detected.
# 0 = Normal, 1 = Ignore link, 2 = ignore all (dont display).
tree_link_mode=0
#
# Enable to Display directory info/size & file/link/dir count, etc.
tree_show_info=True
#
# Show size information when procesing files/links.
tree_show_size=1
#
# Show last modified date when procesing all files/dirs/links.
tree_show_date=1
#
# Enabling will stop script from processing more then 1 directory
# deep into base path.
tree_no_recurs=0
#
# Default Colormode for tree, Mode is '0 1 2 3 4 5 6 7 8 9' where:
# 0 = file, 1 = link, 2=directory, 3=note, 4=background, 5=connector,
# 6=depth, 7=seperator, 8=time, 9=size.
tree_color_mode=(1 3 6 2 0 6 3 8 4)
#
To see what variables are exported when script is sourced, you can create a small script such as:
Code:
export > /cache/1
. sbox
export > /cache/2
cat /cache/2|while IFS= read -r i;do
[[ "$(grep "$i" /cache/1)" ]] || echo "$i"
done
$bb rm -f /cache/{1,2}
save & run, will display all re-usable variables generated by superbox.
*NOTE
Change '. sbox' to '. <name_of_script>' depending on what you named it
adding switches after '. sbox' will enable the variable associated with said switches
My phone does neat stuff!
Sent from my SAMSUNG-SGH-T989 using xda app-developers app
kj2112 said:
My phone does neat stuff!
Sent from my SAMSUNG-SGH-T989 using xda app-developers app
Click to expand...
Click to collapse
Yep, playing with terminal is fun xD
Not quite a full terminal, but close
Ive managed to replicate some missing binaries in script, & modify some standards to suite my needs xD
Uploading a bash 4.1.0 binary for those who want it, the 1 thing this script relies on thats not standard
Just rename to 'bash', move to '/system/bin' & chmod 755 (rwxr-xr-x), then create symlink in xbin for compatability
(some scripts will use /system/xbin/bash, while others will use /system/bin/bash, easy to resolve with symlink)
Default bashrc (/etc/bash/bashrc)
Code:
# /etc/bash/bashrc
#
# This file is sourced by all *interactive* bash shells on startup,
# including some apparently interactive shells such as scp and rcp
# that can't tolerate any output. So make sure this doesn't display
# anything or bad things will happen !
#
# Test for an interactive shell. There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.
[[ $- == *i* ]] || return
#
# Bash won't get SIGWINCH if another process is in the foreground.
# Enable checkwinsize so that bash will check the terminal size when
# it regains control. http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11)
shopt -s checkwinsize
#
# Enable history appending instead of overwriting.
shopt -s histappend
#
# set some environment variables
TERMINFO=/system/etc/terminfo
MANPATH=/system/etc/man:/system/man:/data/local/man
INFOPATH="$MANPATH"
HOME=/sdcard
TERM=xterm
#
# Enable color
CLICOLOR=1
#
# Control history location/format/etc.
HISTFILE="/system/etc/bash/bash_history"
HISTFILESIZE=3000
HISTCONTROL=ignoreboth
HISTSIZE=10000
#
# Prompt color codes
txtblk='\e[0;30m' # Black - Regular
txtred='\e[0;31m' # Red
txtgrn='\e[0;32m' # Green
txtylw='\e[0;33m' # Yellow
txtblu='\e[0;34m' # Blue
txtpur='\e[0;35m' # Purple
txtcyn='\e[0;36m' # Cyan
txtwht='\e[0;37m' # White
bldblk='\e[1;30m' # Black - Bold
bldred='\e[1;31m' # Red
bldgrn='\e[1;32m' # Green
bldylw='\e[1;33m' # Yellow
bldblu='\e[1;34m' # Blue
bldpur='\e[1;35m' # Purple
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White
unkblk='\e[4;30m' # Black - Underline
undred='\e[4;31m' # Red
undgrn='\e[4;32m' # Green
undylw='\e[4;33m' # Yellow
undblu='\e[4;34m' # Blue
undpur='\e[4;35m' # Purple
undcyn='\e[4;36m' # Cyan
undwht='\e[4;37m' # White
bakblk='\e[40m' # Black - Background
bakred='\e[41m' # Red
badgrn='\e[42m' # Green
bakylw='\e[43m' # Yellow
bakblu='\e[44m' # Blue
bakpur='\e[45m' # Purple
bakcyn='\e[46m' # Cyan
bakwht='\e[47m' # White
txtrst='\e[0m' # Text Reset
#
# specify name of prompt
PROMPT_COMMAND='echo -ne ""'
#
# layout for coloring prompt command, if using color use this method only
# or get used to the blank prompt after executing command
if [ ${EUID} -eq 0 ];then
PS1="bash-4.1\[$txtred\]# \[\e[m\]"
else
PS1="bash-4.1\[$txtgrn\]$ \[\e[m\]"
fi
PS2='> '
PS4='+ '
#
# Set up a a few aliases to make commandline processing
# slightly easier.
for i in cat chmod chown df insmod ln lsmod mkdir more mount mv rm rmdir rmmod umount vi;do
eval alias ${i}=\"busybox ${i}\"
done
alias ls='busybox ls --color=auto'
alias sysro='mount -o remount,ro /system'
alias sysrw='mount -o remount,rw /system'
#
# Fix some 'change directory' aliases.
alias cd..='cd ..'
alias cdl='cd -L'
alias ..='cd ..'
alias ...='cd ../..'
#
# Annoyed by 'su' sending you to shell (sh)?
# Uncomment the following.
# alias su='su -c bash'
#
# Enable cmd style clear
alias cls='clear'
#
# Sudo semi-fix
alias sudo='su -c'
#
# Allow pulling command from history easily
alias hist='history|grep '
#
Updated for those few who download, fixed most broken functions & changed most default configuration names
If using configurations, you must use the new templates, original defaults still apply
If you have any issues using this build, please let me know, also, few new functions, & partially updated readme for
better definitions on new/existing options. included makeshift changelog for those who want it.
BTW. found a few binaries that work on our device, with all dependancies,
Such as:
7z (including 7za)
bc
GNU dc
GNU nano
GNU tput (with all dependancies such as terminfo db)
& various others (totaling about 30 GNU applications), just pm me if you want em. shouldnt upload as they aint my builds
Official CM 12.1 nightlies for flounder have arrived and can be found here:
http://download.cyanogenmod.org/?device=flounder
Changelog should soon be found here:
http://www.cmxlog.com/12.1/flounder/#
My work is done, thank you all!
#include
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/
Click to expand...
Click to collapse
As there are so far no official CM12.1 nightlies for our Nexus 9 I want to share my builds. I am just building, all credits go to the developers and the CM12.1 team. Building will be done several times a week (nearly daily) and can be found here:
Download: https://www.androidfilehost.com/?w=files&flid=32977
Latest build: 20150708 https://www.androidfilehost.com/?fid=24052804347770338
Changelog: http://review.cyanogenmod.org/#/q/status:merged+branch:cm-12.1,n,z
Note: Not all nightly builds will be tested before uploading, so only flash, if you really know what you do and how to handle a bootloop or whatever could happen... I am not responsable for your bricked or imploded device! In general I test my builds on my volantisg (a.k.a. flounder_lte) but they should also work on the non-lte flounder. Please test for yourself...
For suitable GAPPs have a look here: http://forum.xda-developers.com/nexus-9/themes-apps/gapps-20150223-flounder-t3038452
I use these gapps: http://forum.xda-developers.com/showthread.php?t=3038452
A fix for the build.prop variety which causes showing of following notification after (re-)booting
There's an internal problem with your device. Contact your manufacturer for details.
Click to expand...
Click to collapse
was brought to us by gladiac and can be found here [FIX] build.prop variety fix (aka contact manufacturer problem). All credits to gladiac, works like a charme for me....
CREDITS
CM Team
SimonSickle
Joshua
HCDRJacob
Hima-Dev
cdesai
bynarie
dcrin3
smac0628
gladiac for build.prop variety fix
If I should miss someone, please give me a hint.
reserved
#3
Working well. Haven't tested everything, but like it so far.
Sent from my Nexus 9 using Tapatalk
New build is up: https://www.androidfilehost.com/?fid=24052804347757511
Is this rom for LTE to?
Torparn said:
Is this rom for LTE to?
Click to expand...
Click to collapse
diskoteer said:
Note: ... In general I test my builds on my volantisg (a.k.a. flounder_lte) but they should also work on the non-lte flounder. Please test for yourself...
Click to expand...
Click to collapse
fleischbanane said:
Click to expand...
Click to collapse
Ok thanks I will try it out.
New build is up: https://www.androidfilehost.com/?fid=24052804347757782
Changelog:
- Synced CM tree. See http://review.cyanogenmod.org/#/q/status:merged+branch:cm-12.1,n,z
Click to expand...
Click to collapse
I have seen no flounder specific commit.
By the way the last flounder specific commit I noticed was Simon Sickle's kernel config update: http://review.cyanogenmod.org/#/c/100324/. Works very well for me, thank you a lot, Simon Sickle!!!
diskoteer said:
New build is up: https://www.androidfilehost.com/?fid=24052804347757782
I have seen no flounder specific commit.
By the way the last flounder specific commit I noticed was Simon Sickle's kernel config update: http://review.cyanogenmod.org/#/c/100324/. Works very well for me, thank you a lot, Simon Sickle!!!
Click to expand...
Click to collapse
Hi diskoteer,
does your build compile bcopy.c into libc? There are some apps out there, like firefox, that use bcopy. They all wont start without bcopy. This fix did not work in my builds for some reason so I had to force the inclusion by removing the ifeq in line 79 of bionic/libc/arch-arm/arm.mk. You can test if bcopy works in your builds by starting firefox. If it crashes and the error report screen appears it does not work.
Tried to update from the official CM12 nightlys but after the first boot there was an message wich told me that I have to contact the manufactorer. After restoring my CM12 nightly everything works fine.
Wiped system and flashed the last build + new gapps for Android 5.1, but no luck.
It's only an information for other people who want to dirty flash over CM12.
fleischbanane said:
Tried to update from the official CM12 nightlys but after the first boot there was an message wich told me that I have to contact the manufactorer. After restoring my CM12 nightly everything works fine.
Wiped system and flashed the last build + new gapps for Android 5.1, but no luck.
It's only an information for other people who want to dirty flash over CM12.
Click to expand...
Click to collapse
This message is harmless. It is solely a check that google implemented in Android 5.1 that compares /system/build.prop with the values found in /vendor/build.prop. If they differ you get that error message. All you need to do to get rid of the error is to change the 3 values in /vendor/build.prop according to the values in /system/build.prop.
fleischbanane said:
Tried to update from the official CM12 nightlys but after the first boot there was an message wich told me that I have to contact the manufactorer.
Click to expand...
Click to collapse
This is a known problem and has something to do with build.prop in /vendor and /system. For details have a look here: http://forum.xda-developers.com/showpost.php?p=60695940&postcount=37 in dcrin3's thread. I for myself have not changed anything in build.prop, I am clicking "ok" in this message, it is just a notice. Everything works fine...
Does anyone is in need for the 5.1.1 bootloader or vendor.img?
Hi,
diskoteer said:
This is a known problem and has something to do with build.prop in /vendor and /system. For details have a look here: http://forum.xda-developers.com/showpost.php?p=60695940&postcount=37 in dcrin3's thread. I for myself have not changed anything in build.prop, I am clicking "ok" in this message, it is just a notice. Everything works fine...
Does anyone is in need for the 5.1.1 bootloader or vendor.img?
Click to expand...
Click to collapse
I just didn't like seeing the popup message on every boot so I created a script to generate a modified vendor image based on the factory image with the properties fixed to match the ones of the ROM being used. If you flash the vendor partition with the image this script produces for your CM 12.1 snapshot ROM, the dialog is gone. Please read the comments on the script for more info.
Code:
#!/bin/sh
# Author: Tuomas Jormola <[email protected]>
# License: Public Domain
#
# This script modifies the factory vendor image from Google to be used with
# CM 12.1 on Nexus 9. By flashing the modified vendor image you can get rid
# of the "There's an internal problem with your device. Contact your
# manufacturer for details" popup displayed on device startup.
#
# The script was developed and tested on Ubuntu 15.04 vivid system. The script
# requires bsdtar and sparse image tools from Google. For Ubuntu/Debian based
# distros you can install the following packages to fulfil the dependencies:
# bsdtar android-tools-fsutils
#
# In order to make the image you need to download the Android 5.1.x factory
# image archive for you device from Google at
# https://developers.google.com/android/nexus/images
# or use these direct links for 5.1.1 LMY47X build
#
# "volantisg" for Nexus 9 (LTE):
# https://dl.google.com/dl/android/aosp/volantisg-lmy47x-factory-0adc3016.tgz
#
# "volantis" for Nexus 9 (Wi-Fi):
# https://dl.google.com/dl/android/aosp/volantis-lmy47x-factory-3efdc8d4.tgz
#
# Then you need a CM 12.1 snapshot ROM image. No official CM 12.1 snapshots
# exists as time of writing so you need to build it on your own or find
# some pre-built snapshot somewhere, see e.g.
# http://forum.xda-developers.com/nexus-9/development/rom-cyanogenmod-12-1-t3129778
#
# Now run the script as root, for example:
#
# sudo bash /path/to/make-vendor-image.sh /path/to/volantisg-lmy47x-factory-0adc3016.tgz /path/to/cm-12.1-20150610-UNOFFICIAL-flounder.zip /path/to/modified-vendor-image-from-volantis-lmy47x-for-cm-12.1-20150610-UNOFFICIAL-flounder.img
#
# You can the flash the modified vendor image to the device with fastboot.
# Boot the device to bootloader, connect the device with a USB cable to the
# Linux machine and issue the command
#
# fastboot flash vendor /path/to/modified-vendor-image-from-volantis-lmy47x-for-cm-12.1-20150610-UNOFFICIAL-flounder.img
#
# You have to re-create and re-flash the vendor image each time you flash a
# new build of CM 12.1.
usage() {
echo "Usage: $0 FACTORY_IMAGE_TARBALL CM_ROM_ZIP NEW_VENDOR_IMAGE_FILE"
}
set -e
set -o verbose
set -o xtrace
if test "`id -u`" != 0; then
echo "This script needs to be run as root" 1>&2
exit 1
fi
FACTORY_IMAGE_TARBALL="$1"
CM_ROM_ZIP="$2"
NEW_VENDOR_IMAGE_FILE="$3"
case "$FACTORY_IMAGE_TARBALL" in
volantis*-*-factory-*.tgz)
PRODUCT="`echo $FACTORY_IMAGE_TARBALL | cut -d- -f1`"
BUILD="`echo $FACTORY_IMAGE_TARBALL | cut -d- -f2`"
;;
*)
echo "Invalid factory image tarball" 1>&2
usage
exit 1
;;
esac
if test -z "$CM_ROM_ZIP"; then
echo "No CM ROM zip file given" 1>&2
usage
exit 1
fi
if ! test -r "$CM_ROM_ZIP"; then
echo "CM ROM zip file not readable" 1>&2
usage
exit 1
fi
if test -z "$NEW_VENDOR_IMAGE_FILE"; then
echo "No new vendor image file given" 1>&2
usage
exit 1
fi
TEMP_DIR="`mktemp -d `"
bsdtar vxf "$CM_ROM_ZIP" -C "$TEMP_DIR" system/build.prop
BUILD_FINGERPRINT="`grep 'ro\.build\.fingerprint=' $TEMP_DIR/system/build.prop | cut -d= -f2`"
BUILD_DATE_UTC="`grep 'ro\.build\.date\.utc=' $TEMP_DIR/system/build.prop | cut -d= -f2`"
BUILD_DATE_STR="`LC_ALL=C LC_TIME=C date -ud @$BUILD_DATE_UTC`"
bsdtar xzOf "$FACTORY_IMAGE_TARBALL" "$PRODUCT-$BUILD/image-$PRODUCT-$BUILD.zip" | bsdtar xf - -C "$TEMP_DIR" vendor.img
simg2img "$TEMP_DIR/vendor.img" "$TEMP_DIR/vendor.raw"
mkdir "$TEMP_DIR/mnt"
mount -o loop "$TEMP_DIR/vendor.raw" "$TEMP_DIR/mnt"
perl -pne"s{^(ro\\.vendor\\.build\\.fingerprint)=.+$}{\$1=$BUILD_FINGERPRINT}" -i "$TEMP_DIR/mnt/build.prop"
perl -pne"s{^(ro\\.vendor\\.build\\.date)=.+$}{\$1=$BUILD_DATE_STR}" -i "$TEMP_DIR/mnt/build.prop"
perl -pne"s{^(ro\\.vendor\\.build\\.date\.utc)=.+$}{\$1=$BUILD_DATE_UTC}" -i "$TEMP_DIR/mnt/build.prop"
umount "$TEMP_DIR/mnt"
img2simg "$TEMP_DIR/vendor.raw" "$NEW_VENDOR_IMAGE_FILE"
rm -rf "$TEMP_DIR"
gladiac said:
Hi diskoteer,
does your build compile bcopy.c into libc? There are some apps out there, like firefox, that use bcopy. They all wont start without bcopy. This fix did not work in my builds for some reason so I had to force the inclusion by removing the ifeq in line 79 of bionic/libc/arch-arm/arm.mk. You can test if bcopy works in your builds by starting firefox. If it crashes and the error report screen appears it does not work.
Click to expand...
Click to collapse
Actuallly I do not know. I don't use firefox, maybe someone who use it can test it? Is there any way to test for bcopy from terminal?
New build up: https://www.androidfilehost.com/?fid=24052804347758256
Changelog:
- Synced CM tree
Click to expand...
Click to collapse
tjormola said:
Hi,
I just didn't like seeing the popup message on every boot so I created a script to generate a modified vendor image based on the factory image with the properties fixed to match the ones of the ROM being used. If you flash the vendor partition with the image this script produces for your CM 12.1 snapshot ROM, the dialog is gone. Please read the comments on the script for more info.
Code:
#!/bin/sh
# Author: Tuomas Jormola <[email protected]>
# License: Public Domain
#
# This script modifies the factory vendor image from Google to be used with
# CM 12.1 on Nexus 9. By flashing the modified vendor image you can get rid
# of the "There's an internal problem with your device. Contact your
# manufacturer for details" popup displayed on device startup.
#
# The script was developed and tested on Ubuntu 15.04 vivid system. The script
# requires bsdtar and sparse image tools from Google. For Ubuntu/Debian based
# distros you can install the following packages to fulfil the dependencies:
# bsdtar android-tools-fsutils
#
# In order to make the image you need to download the Android 5.1.x factory
# image archive for you device from Google at
# https://developers.google.com/android/nexus/images
# or use these direct links for 5.1.1 LMY47X build
#
# "volantisg" for Nexus 9 (LTE):
# https://dl.google.com/dl/android/aosp/volantisg-lmy47x-factory-0adc3016.tgz
#
# "volantis" for Nexus 9 (Wi-Fi):
# https://dl.google.com/dl/android/aosp/volantis-lmy47x-factory-3efdc8d4.tgz
#
# Then you need a CM 12.1 snapshot ROM image. No official CM 12.1 snapshots
# exists as time of writing so you need to build it on your own or find
# some pre-built snapshot somewhere, see e.g.
# http://forum.xda-developers.com/nexus-9/development/rom-cyanogenmod-12-1-t3129778
#
# Now run the script as root, for example:
#
# sudo bash /path/to/make-vendor-image.sh /path/to/volantisg-lmy47x-factory-0adc3016.tgz /path/to/cm-12.1-20150610-UNOFFICIAL-flounder.zip /path/to/modified-vendor-image-from-volantis-lmy47x-for-cm-12.1-20150610-UNOFFICIAL-flounder.img
#
# You can the flash the modified vendor image to the device with fastboot.
# Boot the device to bootloader, connect the device with a USB cable to the
# Linux machine and issue the command
#
# fastboot flash vendor /path/to/modified-vendor-image-from-volantis-lmy47x-for-cm-12.1-20150610-UNOFFICIAL-flounder.img
#
# You have to re-create and re-flash the vendor image each time you flash a
# new build of CM 12.1.
usage() {
echo "Usage: $0 FACTORY_IMAGE_TARBALL CM_ROM_ZIP NEW_VENDOR_IMAGE_FILE"
}
set -e
set -o verbose
set -o xtrace
if test "`id -u`" != 0; then
echo "This script needs to be run as root" 1>&2
exit 1
fi
FACTORY_IMAGE_TARBALL="$1"
CM_ROM_ZIP="$2"
NEW_VENDOR_IMAGE_FILE="$3"
case "$FACTORY_IMAGE_TARBALL" in
volantis*-*-factory-*.tgz)
PRODUCT="`echo $FACTORY_IMAGE_TARBALL | cut -d- -f1`"
BUILD="`echo $FACTORY_IMAGE_TARBALL | cut -d- -f2`"
;;
*)
echo "Invalid factory image tarball" 1>&2
usage
exit 1
;;
esac
if test -z "$CM_ROM_ZIP"; then
echo "No CM ROM zip file given" 1>&2
usage
exit 1
fi
if ! test -r "$CM_ROM_ZIP"; then
echo "CM ROM zip file not readable" 1>&2
usage
exit 1
fi
if test -z "$NEW_VENDOR_IMAGE_FILE"; then
echo "No new vendor image file given" 1>&2
usage
exit 1
fi
TEMP_DIR="`mktemp -d `"
bsdtar vxf "$CM_ROM_ZIP" -C "$TEMP_DIR" system/build.prop
BUILD_FINGERPRINT="`grep 'ro\.build\.fingerprint=' $TEMP_DIR/system/build.prop | cut -d= -f2`"
BUILD_DATE_UTC="`grep 'ro\.build\.date\.utc=' $TEMP_DIR/system/build.prop | cut -d= -f2`"
BUILD_DATE_STR="`LC_ALL=C LC_TIME=C date -ud @$BUILD_DATE_UTC`"
bsdtar xzOf "$FACTORY_IMAGE_TARBALL" "$PRODUCT-$BUILD/image-$PRODUCT-$BUILD.zip" | bsdtar xf - -C "$TEMP_DIR" vendor.img
simg2img "$TEMP_DIR/vendor.img" "$TEMP_DIR/vendor.raw"
mkdir "$TEMP_DIR/mnt"
mount -o loop "$TEMP_DIR/vendor.raw" "$TEMP_DIR/mnt"
perl -pne"s{^(ro\\.vendor\\.build\\.fingerprint)=.+$}{\$1=$BUILD_FINGERPRINT}" -i "$TEMP_DIR/mnt/build.prop"
perl -pne"s{^(ro\\.vendor\\.build\\.date)=.+$}{\$1=$BUILD_DATE_STR}" -i "$TEMP_DIR/mnt/build.prop"
perl -pne"s{^(ro\\.vendor\\.build\\.date\.utc)=.+$}{\$1=$BUILD_DATE_UTC}" -i "$TEMP_DIR/mnt/build.prop"
umount "$TEMP_DIR/mnt"
img2simg "$TEMP_DIR/vendor.raw" "$NEW_VENDOR_IMAGE_FILE"
rm -rf "$TEMP_DIR"
Click to expand...
Click to collapse
Thank you very much for the script, but i'm on Windows and it would be very nice if you can upload the modified vendor.img, so I don't have to set up a VM with all this stuff.
Edit: Flashed the latest build and new gapps for 12.1 over CM12 and everything works perfect, except the warning. But now I know that it's not a big thing and ignore it. :good:
fleischbanane said:
Thank you very much for the script, but i'm on Windows and it would be very nice if you can upload the modified vendor.img, so I don't have to set up a VM with all this stuff.
Click to expand...
Click to collapse
Sorry, I'm not the maintainer of the ROM in this thread and I don't use it myself (I'm compiling my own CM 12.1 snapshots until the official Nexus 9 build is upgraded to 12.1) so I'd rather not try to maintain something that isn't completely under my control. Maybe @diskoteer would like to build and maintain the Wi-Fi and LTE vendor images for his ROM built using this script?
tjormola said:
Sorry, I'm not the maintainer of the ROM in this thread and I don't use it myself (I'm compiling my own CM 12.1 snapshots until the official Nexus 9 build is upgraded to 12.1) so I'd rather not try to maintain something that isn't completely under my control. Maybe @diskoteer would like to build and maintain the Wi-Fi and LTE vendor images for his ROM built using this script?
Click to expand...
Click to collapse
Well, the problem is that the values in build.prop are different in every build. This is why we would have to deliver a vendor image for every new build too. That's not very maintainable. IMHO we should mount /vendor and generate /vendor/build.prop from the information found in /system/build.prop at installation-time of the rom.
//edit:
Something like this would suffice:
Code:
grep -E "^ro\.build\.(date(\.utc)?|fingerprint)=" /system/build.prop |sed -e"s/^ro\./ro.vendor./" > /vendor/build.prop
gladiac said:
Well, the problem is that the values in build.prop are different in every build. This is why we would have to deliver a vendor image for every new build too. That's not very maintainable. IMHO we should mount /vendor and generate /vendor/build.prop from the information found in /system/build.prop at installation-time of the rom.
//edit:
Something like this would suffice:
Code:
grep -E "^ro\.build\.(date(\.utc)?|fingerprint)=" /system/build.prop |sed -e"s/^ro\./ro.vendor./" > /vendor/build.prop
Click to expand...
Click to collapse
Thanks for the feedback. I didn't know it would be so difficult, but the message is no big thing... till my wife will see it the first time. [emoji2]