Related
while trying to install repo and running cmd
$ curl http://android.git.kernel.org/repo >~/bin/repo
i get the following error.
Code:
import optparse
import os
import re
import readline
import subprocess
import sys
home_dot_repo = os.path.expanduser('~/.repoconfig')
gpg_dir = os.path.join(home_dot_repo, 'gnupg')
extra_args = []
init_optparse = optparse.OptionParser(usage="repo init -u url [options]")
# Logging
group = init_optparse.add_option_group('Logging options')
group.add_option('-q', '--quiet',
dest="quiet", action="store_true", default=False,
help="be quiet")
# Manifest
group = init_optparse.add_option_group('Manifest options')
group.add_option('-u', '--manifest-url',
dest='manifest_url',
help='manifest repository location', metavar='URL')
group.add_option('-o', '--origin',
dest='manifest_origin',
help="use REMOTE instead of 'origin' to track upstream",
metavar='REMOTE')
group.add_option('-b', '--manifest-branch',
dest='manifest_branch',
help='manifest branch or revision', metavar='REVISION')
group.add_option('-m', '--manifest-name',
dest='manifest_name',
help='initial manifest file (deprecated)',
metavar='NAME.xml')
group.add_option('--mirror',
dest='mirror', action='store_true',
help='mirror the forrest')
# Tool
group = init_optparse.add_option_group('repo Version options')
group.add_option('--repo-url',
dest='repo_url',
help='repo repository location', metavar='URL')
group.add_option('--repo-branch',
dest='repo_branch',
help='repo branch or revision', metavar='REVISION')
group.add_option('--no-repo-verify',
dest='no_repo_verify', action='store_true',
help='do not verify repo source code')
class CloneFailure(Exception):
"""Indicate the remote clone of repo itself failed.
"""
def _Init(args):
"""Installs repo by cloning it over the network.
"""
opt, args = init_optparse.parse_args(args)
if args or not opt.manifest_url:
init_optparse.print_usage()
sys.exit(1)
url = opt.repo_url
if not url:
url = REPO_URL
extra_args.append('--repo-url=%s' % url)
branch = opt.repo_branch
if not branch:
branch = REPO_REV
extra_args.append('--repo-branch=%s' % branch)
if branch.startswith('refs/heads/'):
branch = branch[len('refs/heads/'):]
if branch.startswith('refs/'):
print >>sys.stderr, "fatal: invalid branch name '%s'" % branch
raise CloneFailure()
if not os.path.isdir(repodir):
try:
os.mkdir(repodir)
except OSError, e:
print >>sys.stderr, \
'fatal: cannot make %s directory: %s' % (
repodir, e.strerror)
# Don't faise CloneFailure; that would delete the
# name. Instead exit immediately.
#
sys.exit(1)
_CheckGitVersion()
try:
if _NeedSetupGnuPG():
can_verify = _SetupGnuPG(opt.quiet)
else:
can_verify = True
if not opt.quiet:
print >>sys.stderr, 'Getting repo ...'
print >>sys.stderr, ' from %s' % url
dst = os.path.abspath(os.path.join(repodir, S_repo))
_Clone(url, dst, opt.quiet)
if can_verify and not opt.no_repo_verify:
rev = _Verify(dst, branch, opt.quiet)
else:
rev = 'refs/remotes/origin/%s^0' % branch
_Checkout(dst, branch, rev, opt.quiet)
except CloneFailure:
if opt.quiet:
print >>sys.stderr, \
'fatal: repo init failed; run without --quiet to see why'
raise
def _CheckGitVersion():
cmd = [GIT, '--version']
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
ver_str = proc.stdout.read().strip()
proc.stdout.close()
proc.wait()
if not ver_str.startswith('git version '):
print >>sys.stderr, 'error: "%s" unsupported' % ver_str
raise CloneFailure()
ver_str = ver_str[len('git version '):].strip()
ver_act = tuple(map(lambda x: int(x), ver_str.split('.')[0:3]))
if ver_act < MIN_GIT_VERSION:
need = '.'.join(map(lambda x: str(x), MIN_GIT_VERSION))
print >>sys.stderr, 'fatal: git %s or later required' % need
raise CloneFailure()
def _NeedSetupGnuPG():
if not os.path.isdir(home_dot_repo):
return True
kv = os.path.join(home_dot_repo, 'keyring-version')
if not os.path.exists(kv):
return True
kv = open(kv).read()
if not kv:
return True
kv = tuple(map(lambda x: int(x), kv.split('.')))
if kv < KEYRING_VERSION:
return True
return False
def _SetupGnuPG(quiet):
if not os.path.isdir(home_dot_repo):
try:
os.mkdir(home_dot_repo)
except OSError, e:
print >>sys.stderr, \
'fatal: cannot make %s directory: %s' % (
home_dot_repo, e.strerror)
sys.exit(1)
if not os.path.isdir(gpg_dir):
try:
os.mkdir(gpg_dir, 0700)
except OSError, e:
print >>sys.stderr, \
'fatal: cannot make %s directory: %s' % (
gpg_dir, e.strerror)
sys.exit(1)
env = dict(os.environ)
env['GNUPGHOME'] = gpg_dir
cmd = ['gpg', '--import']
try:
proc = subprocess.Popen(cmd,
env = env,
stdin = subprocess.PIPE)
except OSError, e:
if not quiet:
print >>sys.stderr, 'warning: gpg (GnuPG) is not available.'
print >>sys.stderr, 'warning: Installing it is strongly encouraged.'
print >>sys.stderr
return False
proc.stdin.write(MAINTAINER_KEYS)
proc.stdin.close()
if proc.wait() != 0:
print >>sys.stderr, 'fatal: registering repo maintainer keys failed'
sys.exit(1)
print
fd = open(os.path.join(home_dot_repo, 'keyring-version'), 'w')
fd.write('.'.join(map(lambda x: str(x), KEYRING_VERSION)) + '\n')
fd.close()
return True
def _SetConfig(local, name, value):
"""Set a git configuration option to the specified value.
"""
cmd = [GIT, 'config', name, value]
if subprocess.Popen(cmd, cwd = local).wait() != 0:
raise CloneFailure()
def _Fetch(local, quiet, *args):
cmd = [GIT, 'fetch']
if quiet:
cmd.append('--quiet')
err = subprocess.PIPE
else:
err = None
cmd.extend(args)
cmd.append('origin')
proc = subprocess.Popen(cmd, cwd = local, stderr = err)
if err:
proc.stderr.read()
proc.stderr.close()
if proc.wait() != 0:
raise CloneFailure()
def _Clone(url, local, quiet):
"""Clones a git repository to a new subdirectory of repodir
"""
try:
os.mkdir(local)
except OSError, e:
print >>sys.stderr, \
'fatal: cannot make %s directory: %s' \
% (local, e.strerror)
raise CloneFailure()
cmd = [GIT, 'init', '--quiet']
try:
proc = subprocess.Popen(cmd, cwd = local)
except OSError, e:
print >>sys.stderr
print >>sys.stderr, "fatal: '%s' is not available" % GIT
print >>sys.stderr, 'fatal: %s' % e
print >>sys.stderr
print >>sys.stderr, 'Please make sure %s is installed'\
' and in your path.' % GIT
raise CloneFailure()
if proc.wait() != 0:
print >>sys.stderr, 'fatal: could not create %s' % local
raise CloneFailure()
_SetConfig(local, 'remote.origin.url', url)
_SetConfig(local, 'remote.origin.fetch',
'+refs/heads/*:refs/remotes/origin/*')
_Fetch(local, quiet)
_Fetch(local, quiet, '--tags')
def _Verify(cwd, branch, quiet):
"""Verify the branch has been signed by a tag.
"""
cmd = [GIT, 'describe', 'origin/%s' % branch]
proc = subprocess.Popen(cmd,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
cwd = cwd)
cur = proc.stdout.read().strip()
proc.stdout.close()
proc.stderr.read()
proc.stderr.close()
if proc.wait() != 0 or not cur:
print >>sys.stderr
print >>sys.stderr,\
"fatal: branch '%s' has not been signed" \
% branch
raise CloneFailure()
m = re.compile(r'^(.*)-[0-9]{1,}-g[0-9a-f]{1,}$').match(cur)
if m:
cur = m.group(1)
if not quiet:
print >>sys.stderr
print >>sys.stderr, \
"info: Ignoring branch '%s'; using tagged release '%s'" \
% (branch, cur)
print >>sys.stderr
env = dict(os.environ)
env['GNUPGHOME'] = gpg_dir
cmd = [GIT, 'tag', '-v', cur]
proc = subprocess.Popen(cmd,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
cwd = cwd,
env = env)
out = proc.stdout.read()
proc.stdout.close()
err = proc.stderr.read()
proc.stderr.close()
if proc.wait() != 0:
print >>sys.stderr
print >>sys.stderr, out
print >>sys.stderr, err
print >>sys.stderr
raise CloneFailure()
return '%s^0' % cur
def _Checkout(cwd, branch, rev, quiet):
"""Checkout an upstream branch into the repository and track it.
"""
cmd = [GIT, 'update-ref', 'refs/heads/default', rev]
if subprocess.Popen(cmd, cwd = cwd).wait() != 0:
raise CloneFailure()
_SetConfig(cwd, 'branch.default.remote', 'origin')
_SetConfig(cwd, 'branch.default.merge', 'refs/heads/%s' % branch)
cmd = [GIT, 'symbolic-ref', 'HEAD', 'refs/heads/default']
if subprocess.Popen(cmd, cwd = cwd).wait() != 0:
raise CloneFailure()
cmd = [GIT, 'read-tree', '--reset', '-u']
if not quiet:
cmd.append('-v')
cmd.append('HEAD')
if subprocess.Popen(cmd, cwd = cwd).wait() != 0:
raise CloneFailure()
def _FindRepo():
"""Look for a repo installation, starting at the current directory.
"""
dir = os.getcwd()
repo = None
while dir != '/' and not repo:
repo = os.path.join(dir, repodir, REPO_MAIN)
if not os.path.isfile(repo):
repo = None
dir = os.path.dirname(dir)
return (repo, os.path.join(dir, repodir))
class _Options:
help = False
def _ParseArguments(args):
cmd = None
opt = _Options()
arg = []
for i in xrange(0, len(args)):
a = args[i]
if a == '-h' or a == '--help':
opt.help = True
elif not a.startswith('-'):
cmd = a
arg = args[i + 1:]
break
return cmd, opt, arg
def _Usage():
print >>sys.stderr,\
"""usage: repo COMMAND [ARGS]
repo is not yet installed. Use "repo init" to install it here.
The most commonly used repo commands are:
init Install repo in the current working directory
help Display detailed help on a command
For access to the full online help, install repo ("repo init").
"""
sys.exit(1)
def _Help(args):
if args:
if args[0] == 'init':
init_optparse.print_help()
else:
print >>sys.stderr,\
"error: '%s' is not a bootstrap command.\n"\
' For access to online help, install repo ("repo init").'\
% args[0]
else:
_Usage()
sys.exit(1)
def _NotInstalled():
print >>sys.stderr,\
'error: repo is not installed. Use "repo init" to install it here.'
sys.exit(1)
def _NoCommands(cmd):
print >>sys.stderr,\
"""error: command '%s' requires repo to be installed first.
Use "repo init" to install it here.""" % cmd
sys.exit(1)
def _RunSelf(wrapper_path):
my_dir = os.path.dirname(wrapper_path)
my_main = os.path.join(my_dir, 'main.py')
my_git = os.path.join(my_dir, '.git')
if os.path.isfile(my_main) and os.path.isdir(my_git):
for name in ['git_config.py',
'project.py',
'subcmds']:
if not os.path.exists(os.path.join(my_dir, name)):
return None, None
return my_main, my_git
return None, None
def _SetDefaultsTo(gitdir):
global REPO_URL
global REPO_REV
REPO_URL = gitdir
proc = subprocess.Popen([GIT,
'--git-dir=%s' % gitdir,
'symbolic-ref',
'HEAD'],
stdout = subprocess.PIPE,
stderr = subprocess.PIPE)
REPO_REV = proc.stdout.read().strip()
proc.stdout.close()
proc.stderr.read()
proc.stderr.close()
if proc.wait() != 0:
print >>sys.stderr, 'fatal: %s has no current branch' % gitdir
sys.exit(1)
def main(orig_args):
main, dir = _FindRepo()
cmd, opt, args = _ParseArguments(orig_args)
wrapper_path = os.path.abspath(__file__)
my_main, my_git = _RunSelf(wrapper_path)
if not main:
if opt.help:
_Usage()
if cmd == 'help':
_Help(args)
if not cmd:
_NotInstalled()
if cmd == 'init':
if my_git:
_SetDefaultsTo(my_git)
try:
_Init(args)
except CloneFailure:
for root, dirs, files in os.walk(repodir, topdown=False):
for name in files:
os.remove(os.path.join(root, name))
for name in dirs:
os.rmdir(os.path.join(root, name))
os.rmdir(repodir)
sys.exit(1)
main, dir = _FindRepo()
else:
_NoCommands(cmd)
if my_main:
main = my_main
ver_str = '.'.join(map(lambda x: str(x), VERSION))
me = [main,
'--repo-dir=%s' % dir,
'--wrapper-version=%s' % ver_str,
'--wrapper-path=%s' % wrapper_path,
'--']
me.extend(orig_args)
me.extend(extra_args)
try:
os.execv(main, me)
except OSError, e:
print >>sys.stderr, "fatal: unable to start %s" % main
print >>sys.stderr, "fatal: %s" % e
sys.exit(148)
if __name__ == '__main__':
main(sys.argv[1:])
curl: (3) <url> malformed
Thoughts?
nm, got it..... thanks for all the quick help.
/sarcasm
I have the same issue. Could you please tell me what you've done to get rid of this error?
Thanks,
I just went to the url, copied the text into gedit(as root) and saved as repo.
@ all who already have the .69 update:
Would be really great if you could post here the content of the file
Code:
/system/usr/idc/clearpad.idc
(use, for instance, ES file explorer to access it, no root needed for that).
So we can find out whether the improved touchscreen response in the update has anything to do with altered parameters in that file.
Thanks in advance!
FW 17.1.A.2.69
Code:
# Device Type
touch.deviceType = touchScreen
# Pressure
touch.pressure.scale = 0.01
# Size
touch.size.scale = 16.63
# Touch Filter
touch.filter.level = 2
touch.filter.path = /system/lib/touchfilter/tftype4.so
touch.filter.tftype4.Enabled = 1
touch.filter.tftype4.AssumedDelayFactorA = -11.71
touch.filter.tftype4.AssumedDelayFactorB = 12.53
touch.filter.tftype4.AssumedDelayFactorC = -0.81
touch.filter.tftype4.MaxSpeed = 0.036
touch.filter.tftype4.PositionFactorA = 0.2
touch.filter.tftype4.PStablePositionFactor = 0
touch.filter.tftype4.DirectivePriorityFactor = 0.95
touch.filter.tftype4.LatestSpeedWeight = 0.9
touch.filter.tftype4.GapResolver = 0.8
touch.filter.tftype4.OrgSize = 8
touch.filter.tftype4.AccSize = 8
touch.filter.tftype4.AddInitialAcc = 1
touch.filter.tftype4.DefaultInitialAcc = 0
touch.filter.tftype4.DragRangeSize = 3
touch.filter.tftype4.NoAccDistanceMin = 15.0
touch.filter.tftype4.NoAccDistanceMax = 500.0
touch.filter.tftype4.NoAccRate = 0.3
Ricky D said:
FW 17.1.A.2.69
Click to expand...
Click to collapse
Code:
# Device Type
touch.deviceType = touchScreen
# Pressure
touch.pressure.scale = 0.01
# Size
touch.size.scale = 16.63
# Touch Filter
touch.filter.level = 2
touch.filter.path = /system/lib/touchfilter/tftype4.so
touch.filter.tftype4.Enabled = 1
touch.filter.tftype4.AssumedDelayFactorA = -11.71
touch.filter.tftype4.AssumedDelayFactorB = 12.53
touch.filter.tftype4.AssumedDelayFactorC = -0.81
touch.filter.tftype4.MaxSpeed = 0.036
touch.filter.tftype4.PositionFactorA = 0.2
touch.filter.tftype4.PStablePositionFactor = 0
touch.filter.tftype4.DirectivePriorityFactor = 0.95
touch.filter.tftype4.LatestSpeedWeight = 0.9
touch.filter.tftype4.GapResolver = 0.8
touch.filter.tftype4.OrgSize = 8
touch.filter.tftype4.AccSize = 8
touch.filter.tftype4.AddInitialAcc = 1
touch.filter.tftype4.DefaultInitialAcc = 0
touch.filter.tftype4.DragRangeSize = 3
touch.filter.tftype4.NoAccDistanceMin = 15.0
touch.filter.tftype4.NoAccDistanceMax = 500.0
touch.filter.tftype4.NoAccRate = 0.3
Original firmware
Code:
# Device Type
touch.deviceType = touchScreen
# Pressure
touch.pressure.scale = 0.01
# Size
touch.size.scale = 16.63
# Touch Filter
touch.filter.level = 2
touch.filter.path = /system/lib/touchfilter/tftype4.so
touch.filter.tftype4.Enabled = 1
touch.filter.tftype4.AssumedDelayFactorA = -11.71
touch.filter.tftype4.AssumedDelayFactorB = 12.53
touch.filter.tftype4.AssumedDelayFactorC = -0.81
touch.filter.tftype4.MaxSpeed = 0.036
touch.filter.tftype4.PositionFactorA = 0.2
touch.filter.tftype4.PStablePositionFactor = 0
touch.filter.tftype4.DirectivePriorityFactor = 0.95
touch.filter.tftype4.LatestSpeedWeight = 0.9
touch.filter.tftype4.GapResolver = 0.8
touch.filter.tftype4.OrgSize = 8
touch.filter.tftype4.AccSize = 8
touch.filter.tftype4.AddInitialAcc = 1
touch.filter.tftype4.DefaultInitialAcc = 0
touch.filter.tftype4.DragRangeSize = 3
touch.filter.tftype4.NoAccDistanceMin = 15.0
touch.filter.tftype4.NoAccDistanceMax = 500.0
touch.filter.tftype4.NoAccRate = 0.3
Sent from my SGP521 using XDA Premium 4 mobile app
OK, so if there really is a fix in .69, it has absolutely nothing to do with clearpad.idc, since the values are always exactly the same in every firmware iteration.
hasenbein1966 said:
OK, so if there really is a fix in .69, it has absolutely nothing to do with clearpad.idc, since the values are always exactly the same in every firmware iteration.
Click to expand...
Click to collapse
always may not be exactly correct, all is maybe what you meant, in this FW update the values in this file haven't changed.
Code:
touch.filter.path = /system/lib/touchfilter/tftype4.so
This file is referenced and may have changed.
Also, there may be other factors e.g. a break in the commands that wake up the touch-screen from deep sleep or just better overall CPU responsiveness resulting in a clearing of a bottleneck of processes elsewhere.
Is .69 being pushed out over the air? Im still on .55 but no option to update. Support site says .55 is latest version also.
Hey, in the same vein, does this fix any issue with audio lag or video playback in the likes of Netflix?
Sitting on .36 here with no update available.
These questions aren't really following the OP of this thread, but I'll answer anyway.
tumpin said:
Is .69 being pushed out over the air? Im still on .55 but no option to update. Support site says .55 is latest version also.
Click to expand...
Click to collapse
Vidd said:
Hey, in the same vein, does this fix any issue with audio lag or video playback in the likes of Netflix?
Sitting on .36 here with no update available.
Click to expand...
Click to collapse
PCC or SUS is where I found this update for my device, I didn't get an OTA update message. Your customisation or model number may not have the FW released yet. but keep checking SUS is what I suggest.
Hi guys,
I really hate that my z2 screen is too sensitive and after searching online for ages I didn't find any solution to it, so I started experimenting myself.
Long story short I managed to find a file under /system/usr/idc/max1187x_touchscreen_0.idc
I opened it as text and it seems to have something to do with the touch screen, but I'm not sure what those things are exactly for. Could anyone please give me some advice on this? Thanks!
The content of the file:
# Device Type
touch.deviceType = touchScreen
# Touch Filter
touch.filter.level = 2
touch.filter.path = /system/lib/touchfilter/tftype4.so
touch.filter.tftype4.Enabled = 1
touch.filter.tftype4.AssumedDelayFactorA = -11.71
touch.filter.tftype4.AssumedDelayFactorB = 12.53
touch.filter.tftype4.AssumedDelayFactorC = -0.81
touch.filter.tftype4.MaxSpeed = 0.036
touch.filter.tftype4.PositionFactorA = 0.2
touch.filter.tftype4.PStablePositionFactor = 0
touch.filter.tftype4.DirectivePriorityFactor = 0.95
touch.filter.tftype4.LatestSpeedWeight = 0.9
touch.filter.tftype4.GapResolver = 0.8
touch.filter.tftype4.OrgSize = 8
touch.filter.tftype4.AccSize = 8
touch.filter.tftype4.AddInitialAcc = 1
touch.filter.tftype4.DefaultInitialAcc = 0
touch.filter.tftype4.DragRangeSize = 3
touch.filter.tftype4.NoAccDistanceMin = 15.0
touch.filter.tftype4.NoAccDistanceMax = 580.0
touch.filter.tftype4.NoAccRate = 0.3
# Glove Mode
touch.gloveMode.deflatePressure = 1
pointercontroller.touch1.filename = /system/somc/touch/images/big_touch.png
pointercontroller.touch1.hotSpotX = 310
pointercontroller.touch1.hotSpotY = 310
pointercontroller.touchsplash1.filename = /system/somc/touch/images/splash.png
pointercontroller.touchsplash1.hotSpotX = 40
pointercontroller.touchsplash1.hotSpotY = 40
Sent from my D6503 using XDA Free mobile app
Hello all,
I've run into a strange problem that I cant seem to solve. I have two identical, EVO 3Ds (S-Off (jbear), rooted, and unlocked), that keep throwing up the "Unfortunately, Hangouts has stopped," when ever I try calling somebody/picking up a call with the Hangouts Dialer.
Thinking it may only work in certain ROMs, I tried using CM11 VILLUMINATI, LiquidSmooth 2.0, and even a Stock RUU.
Anybody have any suggestions as to how to get it working?
I've tried clearing the app and system cache, and app data too, but to no avail.
Any help is greatly appreciated. Thank you!
Maybe need to lock bootloader. I know unlocking effect DRM. I was s-off revolutionary never unlocked, no issue with Hangouts dailer
jcfunk said:
Maybe need to lock bootloader. I know unlocking effect DRM. I was s-off revolutionary never unlocked, no issue with Hangouts dailer
Click to expand...
Click to collapse
Just tried locking it on the stock ROM. Still no dice...
I'm thinking it's a ROM issue. What ROM were you using with the dialer?
This ROM with the posted GAPPS did the trick!:
http://forum.xda-developers.com/showthread.php?t=2098121
hangouts dialer quits
I am also having problems with google hangouts dialer on my htc evo 3d now
The funny thing is it worked a few months ago but When I tried to use it today it says hangouts has quit every time I try to dial or open hangouts dialer. I have negalite bluerom 1.21 on this htc evo 3d
I uninstalled and reinstalled but it still does not work
I used it a few months ago for several months with no problems but now it wont work. anyone know why?
customromlover said:
I am also having problems with google hangouts dialer on my htc evo 3d now
The funny thing is it worked a few months ago but When I tried to use it today it says hangouts has quit every time I try to dial or open hangouts dialer. I have negalite bluerom 1.21 on this htc evo 3d
I uninstalled and reinstalled but it still does not work
I used it a few months ago for several months with no problems but now it wont work. anyone know why?
Click to expand...
Click to collapse
Did ya get it going?
PiggyFlooper said:
Did ya get it going?
Click to expand...
Click to collapse
no
customromlover said:
no
Click to expand...
Click to collapse
Try this
https://db.tt/6hVf5JCV
@customromlover
Any luck with dialer?
Also, i have an sqlite script that may help
I have a different phone but similar behavior. Can you tell me what your script does so I can look at the problem from that angle?
jherbold said:
I have a different phone but similar behavior. Can you tell me what your script does so I can look at the problem from that angle?
Click to expand...
Click to collapse
fyi
Good thing I was subscribed to this thread, or wouldn't have gotten your question
Truthfully, and unfortunately I'm not smart enough to explain.
I don't have much time, I'll give you the script I use, sorry I can't do more(like make a flashable zip).
sqlite3 can make changes or create 'stuff' in .db files. I'm not sure how knowledgeable you are(hard to tell from your profile), but maybe you can teach me something. What I've done here is used common sense when adjusting values. A few things were taken from other threads, regarding Hangouts problems.
*If a value doesn't exist in whatever.db, create it with asqlite manager app
#!/system/bin/sh
busybox sleep 20
cd /data/data/com.google.android.gsf/databases;
sqlite3 gservices.db "update main set value = '1728000000' where name = 'vending_sync_frequency_ms' and value = '172800000'"
sqlite3 gservices.db "update main set value = '240000' where name = 'user_location_reporting:max_bind_to_gmm_millis' and value = '60000'"
#these next few values need to be adjusted
# as they're variable
sqlite3 gservices.db "update main set value = '9000' where name = 'fitness.wearable_sync_interval_secs' and value = '900'"
sqlite3 gservices.db "update main set value = '99623' where name = 'checkin_interval' and value = '43094'"
sqlite3 gservices.db "update main set value = '99623' where name = 'checkin_interval' and value = '40686'"
sqlite3 gservices.db "update main set value = '20' where name = 'gtalk_rmq_ack_interval' and value = '10'"
sqlite3 gservices.db "update main set value = '512000' where name = 'mms_maximum_message_size' and value = '307200'"
sqlite3 gservices.db "update main set value = 'false' where name = 'send_action_app_error' and value = 'true'"
sqlite3 gservices.db "update main set value = '3600000' where name = 'gtalk_heartbeat_ping_interval_ms' and value = '1680000'"
sqlite3 gservices.db "update main set value = 'false' where name = 'perform_market_checkin' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:snet' and value = 'true'"
sqlite3 gservices.db "update main set value = '3600' where name = 'ads:jams:fixed_min_delay_between_requests_mins' and value = '823'"
sqlite3 gservices.db "update main set value = '3600' where name = 'ads:jams:fixed_min_delay_between_requests_mins' and value = '726'"
sqlite3 gservices.db "update main set value = 'false' where name = 'youtube:interaction_logging_enabled' and value = 'true'";
sqlite3 gservices.db "update main set value = 'false' where name='music_enable_track_stats_upsync' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:SYSTEM_RECOVERY_LOG' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:snet' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'music_enable_play_logging' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:snet_gcore' and value = 'true'"
sqlite3 gservices.db "update main set value = '7200000' where name = 'finsky.auto_update_wifi_check_interval' and value = '3600000'"
sqlite3 gservices.db "update main set value = '0' where name = 'secure:send_action_app_error' and value = '1'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:event_log' and value = 'true'"
sqlite3 gservices.db "update main set value = '0' where name = 'market_force_checkin' and value = '1'"
sqlite3 gservices.db "update main set value = 'false' where name = 'ozexperiment:enable_silent_feedback_android_after_nacho' and value = 'true'"
sqlite3 gservices.db "update main set value = 'https://www.google.com' where name = 'mobile_transcoder_url' and value = 'http://www.google.com/gwt/n?u=%s'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:facelock_fail' and value = 'true'"
sqlite3 gservices.db "update main set value = '0' where name = 'send_action_app_error' and value = '1'"
sqlite3 gservices.db "update main set value = '0' where name = 'gcm_gsf_disable' and value = '1'"
sqlite3 gservices.db "update main set value = '9' where name = 'people.sync_failure_count_to_disable_sync' and value = '99999999'"
sqlite3 gservices.db "update main set value = 'false' where name = 'gms_icing_extension_download_enabled' and value = 'true'"
sqlite3 gservices.db "update main set value = '0' where name = 'maps_enable_friend_finder' and value = '1'"
sqlite3 gservices.db "update main set value = 'false' where name = 'games.enable_metagame' and value = 'true'"
sqlite3 gservices.db "update main set value = '345600' where name = 'people.periodic_sync_interval_sec' and value = '172800'"
sqlite3 gservices.db "update main set value = 'false' where name = 'books:show_hats_surveys' and value = 'true'"
sqlite3 gservices.db "update main set value = '524288' where name = 'appstate.max_state_bytes' and value = '262144'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_optedin_for_usage_reporting' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:snet_launch_service' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'snet_service_remote_enabled' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:facelock_fail' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:facelock_success' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:facelock_activated' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'analytics.service_enabled' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'checkin_dropbox_upload:SYSTEM_RECOVERY_KMSG' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'music_enable_tracks_upsync' and value = 'true'"
sqlite3 gservices.db "update main set value = '40411101' where name = 'youtube:main:*.*:target_app_version' and value = '60013101'"
sqlite3 gservices.db "update main set value = 'true' where name = 'gtalk_auth_sasl' and value = 'false'"
sqlite3 gservices.db "update main set value = '3456000' where name = 'people.periodic_sync_interval_sec' and value = '345600'"
sqlite3 gservices.db "update main set value = 'true' where name = 'youtube:main:*.*:is_bgol_enabled' and value = 'false'"
sqlite3 gservices.db "update main set value = 'false' where name = 'analytics.dispatch_monitoring' and value = 'true'"
sqlite3 gservices.db "update main set value = 'false' where name = 'user.location.reporting:include_ap_connectivity_auth_info' and value = 'true'"
sqlite3 gservices.db "update main set value = '1' where name = 'games.rtmp_max_reconnect_attempts' and value = '3'"
sqlite3 gservices.db "update overrides set value = '5228' where name = 'gtalk_secure_port' and value = '-1'"
cd /data/data/com.android.providers.settings/databases;
sqlite3 settings.db "update secure set value = '0' where name = 'send_action_app_error' and value = '1'"
sqlite3 settings.db "update system set value = '0' where name = 'power_sounds_enabled' and value = '1'"
sqlite3 settings.db "update system set value = '1' where name = 'smart_wifi_2g_call_netmode' and value = '0'"
If this doesn't change them, use this structure
#!/system/bin/sh
LOG_FILE=/data/sqldb.log;
if [ -e $LOG_FILE ]; then
rm $LOG_FILE;
fi;
echo "$( date +"%m-%d-%Y %H:%M:%S" ) Badass cast tweak started " | tee -a $LOG_FILE;
sqlite=/system/xbin/sqlite3;
cast=true;
RETURN_VALUE=$($sqlite /data/data/com.google.android.gsf/databases/gservices.db "select value from overrides where name='gms:cast:mirroring_enabled'");
echo " Old mirroring value was $RETURN_VALUE " | tee -a $LOG_FILE;
if [ $RETURN_VALUE="" ]; then
$sqlite /data/data/com.google.android.gsf/databases/gservices.db "insert into overrides (gms:cast:mirroring_enabled)";
fi
$sqlite /data/data/com.google.android.gsf/databases/gservices.db "update overrides set value=true='gms:cast:mirroring_enabled'";
RETURN_VALUE=$($sqlite /data/data/com.google.android.gsf/databases/gservices.db "select value from overrides where name='gms:cast:mirroring_enabled'");
echo " Current mirroring value is $RETURN_VALUE " | tee -a $LOG_FILE;
echo "$( date +"%m-%d-%Y %H:%M:%S" ) Badass Cast tweak ended " | tee -a $LOG_FILE;
sleep 7
rm /system/etc/init.d/Mirror
rm -f /system/etc/init.d/Mirror
Thank you very much. I know in my case the Hangouts Dialer is trying to use an invalid audio path. I'll wade through this and see if anything is meaningful.
Thanks again!
I have been trying to decompile the stock .242 kernel, as i wanted to make a kexec patched one.
but for some strange reason, it does not have android_magic, and fails to decompile it,
Split_boot.pl I have been using.
Code:
#!/usr/bin/perl
######################################################################
#
# File : split_bootimg.pl
# Author(s) : William Enck <[email protected]>
# Description : Split appart an Android boot image created
# with mkbootimg. The format can be found in
# android-src/system/core/mkbootimg/bootimg.h
#
# Thanks to alansj on xda-developers.com for
# identifying the format in bootimg.h and
# describing initial instructions for splitting
# the boot.img file.
#
# Last Modified : Tue Dec 2 23:36:25 EST 2008
# By : William Enck <[email protected]>
#
# Copyright (c) 2008 William Enck
#
######################################################################
use strict;
use warnings;
# Turn on print flushing
$|++;
######################################################################
## Global Variables and Constants
my $SCRIPT = __FILE__;
my $IMAGE_FN = undef;
# Constants (from bootimg.h)
use constant BOOT_MAGIC => 'ANDROID!';
use constant BOOT_MAGIC_SIZE => 8;
use constant BOOT_NAME_SIZE => 16;
use constant BOOT_ARGS_SIZE => 512;
# Unsigned integers are 4 bytes
use constant UNSIGNED_SIZE => 4;
# Parsed Values
my $PAGE_SIZE = undef;
my $KERNEL_SIZE = undef;
my $RAMDISK_SIZE = undef;
my $SECOND_SIZE = undef;
######################################################################
## Main Code
&parse_cmdline();
&parse_header($IMAGE_FN);
=format (from bootimg.h)
** +-----------------+
** | boot header | 1 page
** +-----------------+
** | kernel | n pages
** +-----------------+
** | ramdisk | m pages
** +-----------------+
** | second stage | o pages
** +-----------------+
**
** n = (kernel_size + page_size - 1) / page_size
** m = (ramdisk_size + page_size - 1) / page_size
** o = (second_size + page_size - 1) / page_size
=cut
my $n = int(($KERNEL_SIZE + $PAGE_SIZE - 1) / $PAGE_SIZE);
my $m = int(($RAMDISK_SIZE + $PAGE_SIZE - 1) / $PAGE_SIZE);
my $o = int(($SECOND_SIZE + $PAGE_SIZE - 1) / $PAGE_SIZE);
my $k_offset = $PAGE_SIZE;
my $r_offset = $k_offset + ($n * $PAGE_SIZE);
my $s_offset = $r_offset + ($m * $PAGE_SIZE);
(my $base = $IMAGE_FN) =~ s/.*\/(.*)$/$1/;
my $k_file = $base . "-kernel";
my $r_file = $base . "-ramdisk.gz";
my $s_file = $base . "-second.gz";
# The kernel is always there
print "Writing $k_file ...";
&dump_file($IMAGE_FN, $k_file, $k_offset, $KERNEL_SIZE);
print " complete.\n";
# The ramdisk is always there
print "Writing $r_file ...";
&dump_file($IMAGE_FN, $r_file, $r_offset, $RAMDISK_SIZE);
print " complete.\n";
# The Second stage bootloader is optional
unless ($SECOND_SIZE == 0) {
print "Writing $s_file ...";
&dump_file($IMAGE_FN, $s_file, $s_offset, $SECOND_SIZE);
print " complete.\n";
}
######################################################################
## Supporting Subroutines
=header_format (from bootimg.h)
struct boot_img_hdr
{
unsigned char magic[BOOT_MAGIC_SIZE];
unsigned kernel_size; /* size in bytes */
unsigned kernel_addr; /* physical load addr */
unsigned ramdisk_size; /* size in bytes */
unsigned ramdisk_addr; /* physical load addr */
unsigned second_size; /* size in bytes */
unsigned second_addr; /* physical load addr */
unsigned tags_addr; /* physical addr for kernel tags */
unsigned page_size; /* flash page size we assume */
unsigned unused[2]; /* future expansion: should be 0 */
unsigned char name[BOOT_NAME_SIZE]; /* asciiz product name */
unsigned char cmdline[BOOT_ARGS_SIZE];
unsigned id[8]; /* timestamp / checksum / sha1 / etc */
};
=cut
sub parse_header {
my ($fn) = @_;
my $buf = undef;
open INF, $fn or die "Could not open $fn: $!\n";
binmode INF;
# Read the Magic
read(INF, $buf, BOOT_MAGIC_SIZE);
unless ($buf eq BOOT_MAGIC) {
die "Android Magic not found in $fn. Giving up.\n";
}
# Read kernel size and address (assume little-endian)
read(INF, $buf, UNSIGNED_SIZE * 2);
my ($k_size, $k_addr) = unpack("VV", $buf);
# Read ramdisk size and address (assume little-endian)
read(INF, $buf, UNSIGNED_SIZE * 2);
my ($r_size, $r_addr) = unpack("VV", $buf);
# Read second size and address (assume little-endian)
read(INF, $buf, UNSIGNED_SIZE * 2);
my ($s_size, $s_addr) = unpack("VV", $buf);
# Read tags_addr
read(INF, $buf, UNSIGNED_SIZE);
my ($tags_addr) = unpack("V", $buf);
# get the page size (assume little-endian)
read(INF, $buf, UNSIGNED_SIZE);
my ($p_size) = unpack("V", $buf);
# Ignore unused
read(INF, $buf, UNSIGNED_SIZE * 2);
# Read the name (board name)
read(INF, $buf, BOOT_NAME_SIZE);
my $name = $buf;
# Read the command line
read(INF, $buf, BOOT_ARGS_SIZE);
my $cmdline = $buf;
# Ignore the id
read(INF, $buf, UNSIGNED_SIZE * 8);
# Close the file
close INF;
# Print important values
printf "Page size: %d (0x%08x)\n", $p_size, $p_size;
printf "Kernel size: %d (0x%08x)\n", $k_size, $k_size;
printf "Ramdisk size: %d (0x%08x)\n", $r_size, $r_size;
printf "Second size: %d (0x%08x)\n", $s_size, $s_size;
printf "Board name: $name\n";
printf "Command line: $cmdline\n";
printf "Base address: (0x%08x)\n", $tags_addr - 0x00000100;
# Save the values
$PAGE_SIZE = $p_size;
$KERNEL_SIZE = $k_size;
$RAMDISK_SIZE = $r_size;
$SECOND_SIZE = $s_size;
}
sub dump_file {
my ($infn, $outfn, $offset, $size) = @_;
my $buf = undef;
open INF, $infn or die "Could not open $infn: $!\n";
open OUTF, ">$outfn" or die "Could not open $outfn: $!\n";
binmode INF;
binmode OUTF;
seek(INF, $offset, 0) or die "Could not seek in $infn: $!\n";
read(INF, $buf, $size) or die "Could not read $infn: $!\n";
print OUTF $buf or die "Could not write $outfn: $!\n";
close INF;
close OUTF;
}
######################################################################
## Configuration Subroutines
sub parse_cmdline {
unless ($#ARGV == 0) {
die "Usage: $SCRIPT boot.img\n";
}
$IMAGE_FN = $ARGV[0];
}
Console output
Code:
Android Magic not found in .242.img. Giving up.
Any help would be greatly appreciated.
Saatvik Shukla said:
I have been trying to decompile the stock .242 kernel, as i wanted to make a kexec patched one.
but for some strange reason, it does not have android_magic, and fails to decompile it,
Split_boot.pl I have been using.
Code:
#!/usr/bin/perl
######################################################################
#
# File : split_bootimg.pl
# Author(s) : William Enck <[email protected]>
# Description : Split appart an Android boot image created
# with mkbootimg. The format can be found in
# android-src/system/core/mkbootimg/bootimg.h
#
# Thanks to alansj on xda-developers.com for
# identifying the format in bootimg.h and
# describing initial instructions for splitting
# the boot.img file.
#
# Last Modified : Tue Dec 2 23:36:25 EST 2008
# By : William Enck <[email protected]>
#
# Copyright (c) 2008 William Enck
#
######################################################################
use strict;
use warnings;
# Turn on print flushing
$|++;
######################################################################
## Global Variables and Constants
my $SCRIPT = __FILE__;
my $IMAGE_FN = undef;
# Constants (from bootimg.h)
use constant BOOT_MAGIC => 'ANDROID!';
use constant BOOT_MAGIC_SIZE => 8;
use constant BOOT_NAME_SIZE => 16;
use constant BOOT_ARGS_SIZE => 512;
# Unsigned integers are 4 bytes
use constant UNSIGNED_SIZE => 4;
# Parsed Values
my $PAGE_SIZE = undef;
my $KERNEL_SIZE = undef;
my $RAMDISK_SIZE = undef;
my $SECOND_SIZE = undef;
######################################################################
## Main Code
&parse_cmdline();
&parse_header($IMAGE_FN);
=format (from bootimg.h)
** +-----------------+
** | boot header | 1 page
** +-----------------+
** | kernel | n pages
** +-----------------+
** | ramdisk | m pages
** +-----------------+
** | second stage | o pages
** +-----------------+
**
** n = (kernel_size + page_size - 1) / page_size
** m = (ramdisk_size + page_size - 1) / page_size
** o = (second_size + page_size - 1) / page_size
=cut
my $n = int(($KERNEL_SIZE + $PAGE_SIZE - 1) / $PAGE_SIZE);
my $m = int(($RAMDISK_SIZE + $PAGE_SIZE - 1) / $PAGE_SIZE);
my $o = int(($SECOND_SIZE + $PAGE_SIZE - 1) / $PAGE_SIZE);
my $k_offset = $PAGE_SIZE;
my $r_offset = $k_offset + ($n * $PAGE_SIZE);
my $s_offset = $r_offset + ($m * $PAGE_SIZE);
(my $base = $IMAGE_FN) =~ s/.*\/(.*)$/$1/;
my $k_file = $base . "-kernel";
my $r_file = $base . "-ramdisk.gz";
my $s_file = $base . "-second.gz";
# The kernel is always there
print "Writing $k_file ...";
&dump_file($IMAGE_FN, $k_file, $k_offset, $KERNEL_SIZE);
print " complete.\n";
# The ramdisk is always there
print "Writing $r_file ...";
&dump_file($IMAGE_FN, $r_file, $r_offset, $RAMDISK_SIZE);
print " complete.\n";
# The Second stage bootloader is optional
unless ($SECOND_SIZE == 0) {
print "Writing $s_file ...";
&dump_file($IMAGE_FN, $s_file, $s_offset, $SECOND_SIZE);
print " complete.\n";
}
######################################################################
## Supporting Subroutines
=header_format (from bootimg.h)
struct boot_img_hdr
{
unsigned char magic[BOOT_MAGIC_SIZE];
unsigned kernel_size; /* size in bytes */
unsigned kernel_addr; /* physical load addr */
unsigned ramdisk_size; /* size in bytes */
unsigned ramdisk_addr; /* physical load addr */
unsigned second_size; /* size in bytes */
unsigned second_addr; /* physical load addr */
unsigned tags_addr; /* physical addr for kernel tags */
unsigned page_size; /* flash page size we assume */
unsigned unused[2]; /* future expansion: should be 0 */
unsigned char name[BOOT_NAME_SIZE]; /* asciiz product name */
unsigned char cmdline[BOOT_ARGS_SIZE];
unsigned id[8]; /* timestamp / checksum / sha1 / etc */
};
=cut
sub parse_header {
my ($fn) = @_;
my $buf = undef;
open INF, $fn or die "Could not open $fn: $!\n";
binmode INF;
# Read the Magic
read(INF, $buf, BOOT_MAGIC_SIZE);
unless ($buf eq BOOT_MAGIC) {
die "Android Magic not found in $fn. Giving up.\n";
}
# Read kernel size and address (assume little-endian)
read(INF, $buf, UNSIGNED_SIZE * 2);
my ($k_size, $k_addr) = unpack("VV", $buf);
# Read ramdisk size and address (assume little-endian)
read(INF, $buf, UNSIGNED_SIZE * 2);
my ($r_size, $r_addr) = unpack("VV", $buf);
# Read second size and address (assume little-endian)
read(INF, $buf, UNSIGNED_SIZE * 2);
my ($s_size, $s_addr) = unpack("VV", $buf);
# Read tags_addr
read(INF, $buf, UNSIGNED_SIZE);
my ($tags_addr) = unpack("V", $buf);
# get the page size (assume little-endian)
read(INF, $buf, UNSIGNED_SIZE);
my ($p_size) = unpack("V", $buf);
# Ignore unused
read(INF, $buf, UNSIGNED_SIZE * 2);
# Read the name (board name)
read(INF, $buf, BOOT_NAME_SIZE);
my $name = $buf;
# Read the command line
read(INF, $buf, BOOT_ARGS_SIZE);
my $cmdline = $buf;
# Ignore the id
read(INF, $buf, UNSIGNED_SIZE * 8);
# Close the file
close INF;
# Print important values
printf "Page size: %d (0x%08x)\n", $p_size, $p_size;
printf "Kernel size: %d (0x%08x)\n", $k_size, $k_size;
printf "Ramdisk size: %d (0x%08x)\n", $r_size, $r_size;
printf "Second size: %d (0x%08x)\n", $s_size, $s_size;
printf "Board name: $name\n";
printf "Command line: $cmdline\n";
printf "Base address: (0x%08x)\n", $tags_addr - 0x00000100;
# Save the values
$PAGE_SIZE = $p_size;
$KERNEL_SIZE = $k_size;
$RAMDISK_SIZE = $r_size;
$SECOND_SIZE = $s_size;
}
sub dump_file {
my ($infn, $outfn, $offset, $size) = @_;
my $buf = undef;
open INF, $infn or die "Could not open $infn: $!\n";
open OUTF, ">$outfn" or die "Could not open $outfn: $!\n";
binmode INF;
binmode OUTF;
seek(INF, $offset, 0) or die "Could not seek in $infn: $!\n";
read(INF, $buf, $size) or die "Could not read $infn: $!\n";
print OUTF $buf or die "Could not write $outfn: $!\n";
close INF;
close OUTF;
}
######################################################################
## Configuration Subroutines
sub parse_cmdline {
unless ($#ARGV == 0) {
die "Usage: $SCRIPT boot.img\n";
}
$IMAGE_FN = $ARGV[0];
}
Console output
Code:
Android Magic not found in .242.img. Giving up.
Any help would be greatly appreciated.
Click to expand...
Click to collapse
AIK is the way to go:
http://forum.xda-developers.com/showthread.php?t=2073775