1,git配置跟随项目
配置local就可以,只对当前项目生效
SENRSL:xxx senrsl$ git config --local user.name new.name
SENRSL:xxx senrsl$ git config --local user.email new.name@xxx.com
SENRSL:xxx senrsl$ git config --list
配置后,会在 项目xxx/.git/config文件增加当前用户配置。
2,仓库迁移并保留提交记录
1)直接推新库
2)推新库并保留记录
本地有的话 直接改远端库推
本地没有现拉的话先 git clone --mirror xxxxxx.git
或只拉指定分支 git clone -b develop git@xxxxxx.git
3,terminal走代理
仅对当前窗口有效,简单省事
4,Manifest merger failed with multiple errors
一个旧的库
一开始报
然后
尝试
然后看上面发现是base库报错,去他的build里面发现报错
一个一个搜冲突的地方,能改的改,不能改的排除,不能排除直接强制设置
然后报
然后又执行上面命令
然后。。。。
第二个按钮,Toggle View可以跳转到详细信息。。。。
屮,一目了然。。。。
然后,代码终究没编起来,本身就是有问题的。。。。到处找不到。。。。
屮
5,以前的一个domain
废弃多年,突然看到了,备忘下
还有xlsx格式
全线废弃
6,git自带的缩写
不是自己配的,是自带的
7,多module多buildType时默认值
旧项目改造,app中有5个buildType,此时,按改造计划,需将一堆module迁进项目,编译会报
查了一遭,发现可以不用每个都加的。。。。
app中buildType中增加matchingFallbacks即可
只关注这一项就可以了,无视这一堆垃圾配置,屮
8,编译ijkplayer支持https
官方jcenter提供的不支持https....
只能自己下代码编
1)安装交叉编译命令yasm
然后走步骤
2) 下库
自动下一堆扩展库,好久
从这里配置编译支持的 编解码格式
环境变量名字也是有要求的。。。。
回上级目录
所有的东西都在这里面了。。。。
9,adb查看当前交互activity
原来是有工具的呀
2019年07月06日20:26:02
11,shell安装多个apk到设备
12,三方aar替换类
13,tomcat支持软链接
先建个软链接
不用重启,直接生效。
14,apk签名与查看签名
15,秘钥登录GCP
折腾半天竟然是域名解析出问题了。。。。
16,gradlew 强制刷新缓存
老问题了,纨绔玩库的人经常遇到。。。。
然而并没有什么卵用。。。。
17,CentOS 7安装 Apache
安装Apache,然后配置。
[root@ss-cd2 ~]# yum install httpd
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.sonn.com
* epel: d2lzkl7pfhq30w.cloudfront.net
* extras: mirrors.vcea.wsu.edu
* updates: mirrors.cat.pdx.edu
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-90.el7.centos 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-90.el7.centos,它被软件包 httpd-2.4.6-90.el7.centos.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-90.el7.centos.x86_64 需要
--> 正在处理依赖关系 libaprutil-1.so.0()(64bit),它被软件包 httpd-2.4.6-90.el7.centos.x86_64 需要
--> 正在处理依赖关系 libapr-1.so.0()(64bit),它被软件包 httpd-2.4.6-90.el7.centos.x86_64 需要
--> 正在检查事务
---> 软件包 apr.x86_64.0.1.4.8-5.el7 将被 安装
---> 软件包 apr-util.x86_64.0.1.5.2-6.el7 将被 安装
---> 软件包 httpd-tools.x86_64.0.2.4.6-90.el7.centos 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
========================================================================================================================================================
Package 架构 版本 源 大小
========================================================================================================================================================
正在安装:
httpd x86_64 2.4.6-90.el7.centos base 2.7 M
为依赖而安装:
apr x86_64 1.4.8-5.el7 base 103 k
apr-util x86_64 1.5.2-6.el7 base 92 k
httpd-tools x86_64 2.4.6-90.el7.centos base 91 k
mailcap noarch 2.1.41-2.el7 base 31 k
事务概要
========================================================================================================================================================
安装 1 软件包 (+4 依赖软件包)
总下载量:3.0 M
安装大小:10 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:00
(2/5): apr-1.4.8-5.el7.x86_64.rpm | 103 kB 00:00:00
(3/5): httpd-tools-2.4.6-90.el7.centos.x86_64.rpm | 91 kB 00:00:00
(4/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:00
(5/5): httpd-2.4.6-90.el7.centos.x86_64.rpm | 2.7 MB 00:00:00
--------------------------------------------------------------------------------------------------------------------------------------------------------
总计 2.2 MB/s | 3.0 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : apr-1.4.8-5.el7.x86_64 1/5
正在安装 : apr-util-1.5.2-6.el7.x86_64 2/5
正在安装 : httpd-tools-2.4.6-90.el7.centos.x86_64 3/5
正在安装 : mailcap-2.1.41-2.el7.noarch 4/5
正在安装 : httpd-2.4.6-90.el7.centos.x86_64 5/5
验证中 : apr-1.4.8-5.el7.x86_64 1/5
验证中 : mailcap-2.1.41-2.el7.noarch 2/5
验证中 : httpd-tools-2.4.6-90.el7.centos.x86_64 3/5
验证中 : apr-util-1.5.2-6.el7.x86_64 4/5
验证中 : httpd-2.4.6-90.el7.centos.x86_64 5/5
已安装:
httpd.x86_64 0:2.4.6-90.el7.centos
作为依赖被安装:
apr.x86_64 0:1.4.8-5.el7 apr-util.x86_64 0:1.5.2-6.el7 httpd-tools.x86_64 0:2.4.6-90.el7.centos mailcap.noarch 0:2.1.41-2.el7
完毕!
[root@ss-cd2 ~]# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@ss-cd2 ~]# systemctl is-enabled httpd.service
enabled
[root@ss-cd2 ~]# systemctl start httpd.service
[root@ss-cd2 ~]#
18,UML component fragmentastah,超级难用啊。。。。
19,mac os default pip
原来是自带的
20,Download error on https://pypi.org/simple/
mac 默认Python2.7.16,死活不行,搞不定,只好安Python3.。。。
www.python.org/downloads/mac-osx/
浪费一晚上。。。。
。。。。
最终又回到这个问题
最终,这个问题竟然是因为 没有这么挂代理。。。。
21,android studio 每次完全退出导入的code style会失效
官方的issue
issuetracker.google.com/issues/78097962
方法一,每个项目导一下,应用到项目
github.com/square/java-code-styles/issues/63
stackoverflow.com/questions/36882427/android-studio-resetting-changes-to-default-code-style
但是这个每个项目都要单独导
需要一个全局的
全局的试了几个都不行,现在是配置在项目里,然后上 git 多人同步。。。。
22,反编译重打包
好久没弄,看起来简单多了
然后照着反编企业微信,重打包报
就能正常打开了。。。。
手机号登录成功,坐等封号。。。。
反编jar
解压缩的apk包,把 要改的classes.dex拷出来
23,to work with multiple hotfixes at the same time
在当前项目目录,执行开启配置
git config --add gitflow.multi-release true
24,mac加密压缩zip
25,屏幕进水,通过截屏配合adb安个远程控制
上周手机掉马桶后的应对方案。。。。
SENRSL:Downloads senrsl$ adb shell input swipe 50 250 250 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 50 250 250 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 50 250 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb install AirDroid_4.2.5.5_airdroidhp.apk
Performing Streamed Install
Success
SENRSL:Downloads senrsl$ adb shell am start -n com.sand.airdroid/com.sand.airdroid.ui.splash.SplashActivity_
Starting: Intent { cmp=com.sand.airdroid/.ui.splash.SplashActivity_ }
SENRSL:Downloads senrsl$ adb shell input tap 1514 806
SENRSL:Downloads senrsl$ adb shell input tap 1514 806
SENRSL:Downloads senrsl$ adb shell input tap 806 1514
SENRSL:Downloads senrsl$ adb shell input tap 242 2946
SENRSL:Downloads senrsl$ adb shell input tap 242 2046
SENRSL:Downloads senrsl$ adb shell input tap 173 503
SENRSL:Downloads senrsl$ adb shell input tap 697 1329
SENRSL:Downloads senrsl$ adb shell input text dong_M@yeah.net
SENRSL:Downloads senrsl$ adb shell input tap 170 622
SENRSL:Downloads senrsl$ adb shell input text bbbbbb
SENRSL:Downloads senrsl$ adb shell input tap 400 830
SENRSL:Downloads senrsl$ adb shell reboot
adb server version (40) doesn't match this client (41); killing...
* daemon started successfully
SENRSL:Downloads senrsl$ adb shell am start -n com.sand.airdroid/com.sand.airdroid.ui.splash.SplashActivity_
Starting: Intent { cmp=com.sand.airdroid/.ui.splash.SplashActivity_ }
SENRSL:Downloads senrsl$ adb shell input tap 806 1514
SENRSL:Downloads senrsl$ adb shell input tap 242 2946
SENRSL:Downloads senrsl$ adb shell input tap 242 2046
SENRSL:Downloads senrsl$ adb shell input tap 173 503
SENRSL:Downloads senrsl$ adb shell input text dong_M@yeah.net
SENRSL:Downloads senrsl$ adb shell input tap 170 622
SENRSL:Downloads senrsl$ adb shell input text aaaaaa
SENRSL:Downloads senrsl$ adb shell input tap 400 830
SENRSL:Downloads senrsl$ adb shell input tap 998 1379
SENRSL:Downloads senrsl$ adb shell input tap 760 1218
SENRSL:Downloads senrsl$ adb shell input tap 469 1804
SENRSL:Downloads senrsl$ adb shell input tap 776 2007
SENRSL:Downloads senrsl$ adb shell input tap 867 1311
SENRSL:Downloads senrsl$ adb shell input tap 567 1627
SENRSL:Downloads senrsl$ adb shell input tap 951 1644
SENRSL:Downloads senrsl$ adb shell input tap 520 1625
SENRSL:Downloads senrsl$ adb shell input keyevent 3
SENRSL:Downloads senrsl$ adb shell input tap 406 1678
SENRSL:Downloads senrsl$ adb shell input tap 742 2020
SENRSL:Downloads senrsl$ adb shell input tap 319 2020
SENRSL:Downloads senrsl$ adb shell input tap 696 1772
SENRSL:Downloads senrsl$ adb shell input tap 914 488
SENRSL:Downloads senrsl$ adb shell input tap 268 1981
SENRSL:Downloads senrsl$ adb shell input tap 924 1076
SENRSL:Downloads senrsl$ adb shell input tap 715 1289
SENRSL:Downloads senrsl$ adb shell input tap 715 1289
SENRSL:Downloads senrsl$ adb shell input tap 715 1289
SENRSL:Downloads senrsl$ adb shell input tap 715 1289
SENRSL:Downloads senrsl$ adb shell input tap 715 1289
SENRSL:Downloads senrsl$ adb shell am start -n com.sand.airdroid/com.sand.airdroid.ui.splash.SplashActivity_
Starting: Intent { cmp=com.sand.airdroid/.ui.splash.SplashActivity_ }
Warning: Activity not started, its current task has been brought to the front
SENRSL:Downloads senrsl$ adb shell input keyevent 4
SENRSL:Downloads senrsl$ adb shell input tap 501 1635
SENRSL:Downloads senrsl$
2020年06月19日20:01:37
配置local就可以,只对当前项目生效
SENRSL:xxx senrsl$ git config --local user.name new.name
SENRSL:xxx senrsl$ git config --local user.email new.name@xxx.com
SENRSL:xxx senrsl$ git config --list
配置后,会在 项目xxx/.git/config文件增加当前用户配置。
2,仓库迁移并保留提交记录
1)直接推新库
git remote add origin git@bitbucket.org:dcjz/candy.git这个方法不会保留历史记录并且只推一个分支。
git push -u origin master
2)推新库并保留记录
本地有的话 直接改远端库推
本地没有现拉的话先 git clone --mirror xxxxxx.git
或只拉指定分支 git clone -b develop git@xxxxxx.git
这个方法会推本地所有的分支跟tag,并保存历史提交记录
- SENRSL:Candy senrsl$ git branch
- * blue
- master
- SENRSL:Candy senrsl$ git remote -v
- origin git@github.com:xxxxxx.git (fetch)
- origin git@github.com:xxxxxx.git (push)
- SENRSL:Candy senrsl$ git remote set-url --push origin git@bitbucket.org:dcjz/candy.git
- 此处如使用 git remote set-url origin git@xxxx.git 是修改featch + push
- SENRSL:Candy senrsl$ git remote -v
- origin git@github.com:xxxxxx.git (fetch)
- origin git@bitbucket.org:dcjz/candy.git (push)
- SENRSL:Candy senrsl$ git push --mirror
- Counting objects: 41735, done.
- Delta compression using up to 12 threads.
- Compressing objects: 100% (13351/13351), done.
- packet_write_wait: Connection to 18.205.93.2 port 22: Broken pipe
- fatal: The remote end hung up unexpectedly
- fatal: The remote end hung up unexpectedly
- SENRSL:Candy senrsl$ git push --mirror
- Counting objects: 41735, done.
- Delta compression using up to 12 threads.
- Compressing objects: 100% (13351/13351), done.
- packet_write_wait: Connection to 18.205.93.2 port 22: Broken pipe
- fatal: The remote end hung up unexpectedly
- fatal: The remote end hung up unexpectedly
- SENRSL:Candy senrsl$ export http_proxy=http://127.0.0.1:1087
- SENRSL:Candy senrsl$ git push --mirror
- Counting objects: 41735, done.
- Delta compression using up to 12 threads.
- Compressing objects: 100% (13351/13351), done.
- Writing objects: 100% (41735/41735), 129.65 MiB | 9.00 KiB/s, done.
- Total 41735 (delta 28055), reused 36480 (delta 23969)
- remote: Resolving deltas: 100% (28055/28055), done.
- To bitbucket.org:dcjz/candy.git
- * [new branch] blue -> blue
- * [new branch] master -> master
- * [new branch] origin/HEAD -> origin/HEAD
- * [new branch] origin/blue -> origin/blue
- * [new branch] origin/master -> origin/master
- * [new tag] v1.0.1 -> v1.0.1
- * [new tag] v1.0.1.10r -> v1.0.1.10r
- * [new tag] v1.0.1.2c -> v1.0.1.2c
- * [new tag] v1.0.1.3c -> v1.0.1.3c
- * [new tag] v1.0.1.4c -> v1.0.1.4c
- * [new tag] v1.0.1.5c -> v1.0.1.5c
- * [new tag] v1.0.1.5rc -> v1.0.1.5rc
- * [new tag] v1.0.1.6c -> v1.0.1.6c
- * [new tag] v1.0.1.6rc -> v1.0.1.6rc
- * [new tag] v1.0.1.7c -> v1.0.1.7c
- * [new tag] v1.0.1.8c -> v1.0.1.8c
- * [new tag] v1.0.1.9c -> v1.0.1.9c
- * [new tag] v1.0.11 -> v1.0.11
- * [new tag] v1.0.11.23 -> v1.0.11.23
- * [new tag] v1.0.12 -> v1.0.12
- * [new tag] v1.1.0 -> v1.1.0
- * [new tag] v1.1.0.26 -> v1.1.0.26
- * [new tag] v1.1.0.33 -> v1.1.0.33
- * [new tag] v1.1.1 -> v1.1.1
- * [new tag] v1.1.10 -> v1.1.10
- * [new tag] v1.1.11 -> v1.1.11
- * [new tag] v1.1.2 -> v1.1.2
- * [new tag] v1.1.3 -> v1.1.3
- * [new tag] v1.1.4 -> v1.1.4
- * [new tag] v1.1.5 -> v1.1.5
- * [new tag] v1.1.6 -> v1.1.6
- * [new tag] v1.1.7 -> v1.1.7
- * [new tag] v1.1.8 -> v1.1.8
- * [new tag] v1.1.9 -> v1.1.9
- * [new tag] v1.2.0 -> v1.2.0
- * [new tag] v1.2.0.1 -> v1.2.0.1
- * [new tag] v1.3.0 -> v1.3.0
- * [new tag] v1.3.0.1 -> v1.3.0.1
- * [new tag] v1.3.0.2 -> v1.3.0.2
- * [new tag] v1.3.1 -> v1.3.1
- * [new tag] v1.4.0 -> v1.4.0
- * [new tag] v1.5.0 -> v1.5.0
- * [new tag] v1.5.0.1 -> v1.5.0.1
- * [new tag] v1.5.0.2 -> v1.5.0.2
- * [new tag] v1.5.1 -> v1.5.1
- * [new tag] v1.6.0 -> v1.6.0
- * [new tag] v2.0.0 -> v2.0.0
- * [new tag] v2.1.0 -> v2.1.0
- * [new tag] v2.2.0 -> v2.2.0
- * [new tag] v2.2.1 -> v2.2.1
- * [new tag] v2.3.0 -> v2.3.0
- * [new tag] v2.3.1 -> v2.3.1
- * [new tag] v2.3.2 -> v2.3.2
- * [new tag] v2.3.3 -> v2.3.3
- * [new tag] v2.4.0 -> v2.4.0
- * [new tag] v2.5.0 -> v2.5.0
- * [new tag] v2.5.1 -> v2.5.1
- * [new tag] v2.6.0 -> v2.6.0
- * [new tag] v2.6.0.1 -> v2.6.0.1
- * [new tag] v3.0.0 -> v3.0.0
- * [new tag] v3.0.1 -> v3.0.1
- * [new tag] v3.0.2 -> v3.0.2
- * [new tag] v3.1.0 -> v3.1.0
- * [new tag] v3.1.1 -> v3.1.1
- * [new tag] v3.2.0 -> v3.2.0
- * [new tag] v3.3.0 -> v3.3.0
- * [new tag] v3.4.0 -> v3.4.0
- * [new tag] v3.5.0 -> v3.5.0
- * [new tag] v3.5.1 -> v3.5.1
- * [new tag] v3.6.0 -> v3.6.0
- * [new tag] v3.7.0 -> v3.7.0
- SENRSL:Candy senrsl$
3,terminal走代理
仅对当前窗口有效,简单省事
SENRSL:Candy senrsl$ export http_proxy=http://127.0.0.1:1087或者
export ALL_PROXY=socks5://127.0.0.1:1086然后发现对于有些网站根本就没用
4,Manifest merger failed with multiple errors
一个旧的库
一开始报
删了gradle、.gradle、.idea目录重新导入项目就好了。。。。
- Gradle project sync failed. Basic functionality (e.g, editing, debugging) will not work properly.
然后
- org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':base:processDebugAndroidTestManifest'.
- at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
- at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
- at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
- at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
- at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
- at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
- at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
- at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
- at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
- at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
- at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
- at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
- at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
- at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
- at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
- at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
- at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
- at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
- at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
- at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
- at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
- at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:262)
- at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:246)
- at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:136)
- at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
- at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.execute(DefaultTaskPlanExecutor.java:201)
- at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.executeWithTask(DefaultTaskPlanExecutor.java:192)
- at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
- at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
- at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
- at java.lang.Thread.run(Thread.java:748)
- Caused by: java.lang.RuntimeException: Manifest merger failed with multiple errors, see logs
- at com.android.builder.core.AndroidBuilder.handleMergingResult(AndroidBuilder.java:759)
- at com.android.builder.core.AndroidBuilder.mergeManifestsForTestVariant(AndroidBuilder.java:706)
- at com.android.build.gradle.tasks.ProcessTestManifest.doFullTaskAction(ProcessTestManifest.java:146)
- at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:106)
- at sun.reflect.GeneratedMethodAccessor274.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
- at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
- at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
- at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
- at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
- at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
- at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
- at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
- at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
- at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
- at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
- at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
- ... 33 more
尝试
SENRSL:common-android senrsl$ ./gradlew processDebugManifest --stacktrace竟然是成功的,然后看刚才的日志
Parallel execution with configuration on demand is an incubating feature.
。。。
BUILD SUCCESSFUL in 0s
44 actionable tasks: 44 up-to-date
SENRSL:common-android senrsl$
然后看上面发现是base库报错,去他的build里面发现报错
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 28.0.0, 25.3.0. Examples include com.android.support:animated-vector-drawable:28.0.0 and com.android.support:support-media-compat:25.3.0 more... (⌃F1)
一个一个搜冲突的地方,能改的改,不能改的排除,不能排除直接强制设置
除了 multidex之前这个组下全用28.0.0configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'com.android.support') { if (!requested.name.startsWith("multidex")) { details.useVersion '28.0.0' } } } }
然后报
Manifest merger failed with multiple errors, see logs去找 Mainifest.xml的Merged Manifest里面并没有Error....
然后又执行上面命令
SENRSL:common-android senrsl$ ./gradlew processDebugManifest --stacktrace挨个解决WARN,现在已经没WARN了,依然包Mainifest merger错误。。。。
Parallel execution with configuration on demand is an incubating feature.
BUILD SUCCESSFUL in 0s
26 actionable tasks: 26 up-to-date
SENRSL:common-android senrsl$
然后。。。。
第二个按钮,Toggle View可以跳转到详细信息。。。。
屮,一目了然。。。。
然后,代码终究没编起来,本身就是有问题的。。。。到处找不到。。。。
屮
5,以前的一个domain
废弃多年,突然看到了,备忘下
SENRSL:~ senrsl$ cat Downloads/dcjz.ml
dcjz.ml. 600 IN SOA ns7.alidns.com. hostmaster.hichina.com. 1560319318 3600 1200 86400 360
dcjz.ml. 86400 IN NS ns7.alidns.com.
dcjz.ml. 86400 IN NS ns8.alidns.com.
dcjz.ml. 600 IN A 216.239.38.21
dcjz.ml. 600 IN A 216.239.36.21
dcjz.ml. 600 IN A 216.239.34.21
dcjz.ml. 600 IN A 216.239.32.21
kwgdiiq446dt.dcjz.ml. 600 IN CNAME gv-emx3keuzriwosv.dv.googlehosted.com.
sb.dcjz.ml. 600 IN A 47.52.128.120
ss.dcjz.ml. 600 IN A 35.187.210.27
www.dcjz.ml. 600 IN CNAME ghs.google.com.
SENRSL:~ senrsl$
还有xlsx格式
记录类型 | 主机记录 | 解析线路 | 记录值 | MX优先级 | TTL值 | 状态(暂停/正常) | 备注 |
A | sb | 默认 | 47.52.128.120 | 600 | 正常 | ||
A | ss | 默认 | 35.187.210.27 | 600 | 正常 | ||
CNAME | kwgdiiq446dt | 默认 | gv-emx3keuzriwosv.dv.googlehosted.com | 600 | 正常 | ||
CNAME | www | 默认 | ghs.google.com | 600 | 正常 | ||
A | @ | 默认 | 216.239.38.21 | 600 | 正常 | ||
A | @ | 默认 | 216.239.36.21 | 600 | 正常 | ||
A | @ | 默认 | 216.239.34.21 | 600 | 正常 | ||
A | @ | 默认 | 216.239.32.21 | 600 | 正常 |
全线废弃
6,git自带的缩写
不是自己配的,是自带的
SENRSL:piaos senrsl$ git status
On branch feature/Feature-MergeSupport
Your branch is ahead of 'origin/feature/Feature-MergeSupport' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
SENRSL:piaos senrsl$ git s
On branch feature/Feature-MergeSupport
Your branch is ahead of 'origin/feature/Feature-MergeSupport' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
SENRSL:piaos senrsl$ git help s
's' is aliased to 'status'
SENRSL:piaoshen senrsl$ git help co
No manual entry for gitco
SENRSL:piaos senrsl$ git help alias
'alias' is aliased to '!git config --list | grep 'alias\.' | sed 's/alias\.\([^=]*\)=\(.*\)/\1\ => \2/' | sort'
SENRSL:piaos senrsl$ git alias
a => !git add . && git status
aa => !git add . && git add -u . && git status
ac => !git add . && git commit
acm => !git add . && git commit -m
alias => !git config --list | grep 'alias\.' | sed 's/alias\.\([^=]*\)=\(.*\)/\1\ => \2/' | sort
au => !git add -u . && git status
c => commit
ca => commit --amend
cm => commit -m
d => diff
l => log --graph --all --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'
lg => log --color --graph --pretty=format:'%C(bold white)%h%Creset -%C(bold green)%d%Creset %s %C(bold green)(%cr)%Creset %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
ll => log --stat --abbrev-commit
llg => log --color --graph --pretty=format:'%C(bold white)%H %d%Creset%n%s%n%+b%C(bold blue)%an <%ae>%Creset %C(bold green)%cr (%ci)' --abbrev-commit
master => checkout master
s => status
spull => svn rebase
spush => svn dcommit
SENRSL:piaos senrsl$
7,多module多buildType时默认值
旧项目改造,app中有5个buildType,此时,按改造计划,需将一堆module迁进项目,编译会报
Required com.android.build.api.attributes.BuildTypeAttr 'stg' and found incompatible value 'debug'.此时,需要对每个子module对应写buildType,不然会报错,类似:
buildTypes { debug {} stg {} dev {} pre_release {} release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
查了一遭,发现可以不用每个都加的。。。。
app中buildType中增加matchingFallbacks即可
buildTypes { stg { matchingFallbacks = ['stg', 'release', 'debug'] } release { minifyEnabled true shrinkResources true // signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'obfuscate-helper-rules.pro' } dev { matchingFallbacks = ['dev', 'debug', 'release'] } debug { signingConfig signingConfigs.release minifyEnabled false shrinkResources false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro', 'obfuscate-helper-rules.pro' } pre_release { matchingFallbacks = ['pre_release', 'release', 'debug'] } }在除 debug跟release外的其他buildType中增加
matchingFallbacks = ['stg', 'release', 'debug']这样,子module会按照数组中顺序使用buildType配置。
只关注这一项就可以了,无视这一堆垃圾配置,屮
8,编译ijkplayer支持https
官方jcenter提供的不支持https....
只能自己下代码编
1)安装交叉编译命令yasm
SENRSL:~ senrsl$ brew install yasm
SENRSL:~ senrsl$ yasm --version
yasm 1.3.0
Compiled on Oct 14 2018.
Copyright (c) 2001-2014 Peter Johnson and other Yasm developers.
Run yasm --license for licensing overview and summary.
SENRSL:~ senrsl$
然后走步骤
2) 下库
SENRSL:temp senrsl$ git clone git@github.com:bilibili/ijkplayer.git3)初始化 android环境
Cloning into 'ijkplayer'...
remote: Enumerating objects: 24677, done.
remote: Total 24677 (delta 0), reused 0 (delta 0), pack-reused 24677
Receiving objects: 100% (24677/24677), 7.85 MiB | 241.00 KiB/s, done.
Resolving deltas: 100% (15698/15698), done.
SENRSL:temp senrsl$ cd ijkplayer/
SENRSL:ijkplayer senrsl$ ls
COPYING.GPLv2 README.md init-android-exo.sh init-config.sh
COPYING.GPLv3 android init-android-j4a.sh init-ios-openssl.sh
COPYING.LGPLv2.1 compile-android-j4a.sh init-android-libsoxr.sh init-ios.sh
COPYING.LGPLv2.1.txt config init-android-libyuv.sh ios
COPYING.LGPLv3 doc init-android-openssl.sh tools
MODULE_LICENSE_APACHE2 extra init-android-prof.sh version.sh
NEWS.md ijkmedia init-android-soundtouch.sh
NOTICE ijkprof init-android.sh
SENRSL:ijkplayer senrsl$ git branch
* master
SENRSL:temp senrsl$
自动下一堆扩展库,好久
SENRSL:ijkplayer senrsl$ ./init-android.sh4)配置编译脚本
git version 2.16.3
== pull ffmpeg base ==
Cloning into 'extra/ffmpeg'...
。。。。
从这里配置编译支持的 编解码格式
SENRSL:ijkplayer senrsl$ ls -l config/5)初始化支持https
total 88
-rwxr-xr-x 1 senrsl staff 10370 6 29 14:58 module-default.sh
-rwxr-xr-x 1 senrsl staff 14581 6 29 14:58 module-lite-hevc.sh
-rwxr-xr-x@ 1 senrsl staff 15819 6 29 14:58 module-lite.sh
lrwxr-xr-x 1 senrsl staff 14 6 29 14:58 module.sh -> module-lite.sh
SENRSL:ijkplayer senrsl$
SENRSL:ijkplayer senrsl$ ./init-android-openssl.sh6) 清缓存
== pull openssl base ==
SENRSL:ijkplayer senrsl$ cd android/contrib/7)编译openssl
SENRSL:contrib senrsl$ ./compile-openssl.sh clean
====================
[*] check archs
====================
FF_ALL_ARCHS = armv5 armv7a arm64 x86 x86_64
FF_ACT_ARCHS = FF_ACT_ARCHS_64
/Users/senrsl/temp/ijkplayer/android/contrib
/Users/senrsl/temp/ijkplayer/android/contrib
/Users/senrsl/temp/ijkplayer/android/contrib
/Users/senrsl/temp/ijkplayer/android/contrib
/Users/senrsl/temp/ijkplayer/android/contrib
SENRSL:contrib senrsl$ ./compile-ffmpeg.sh clean
====================
[*] check archs
====================
FF_ALL_ARCHS = armv5 armv7a arm64 x86 x86_64
FF_ACT_ARCHS = FF_ACT_ARCHS_64
/Users/senrsl/temp/ijkplayer/android/contrib
/Users/senrsl/temp/ijkplayer/android/contrib
/Users/senrsl/temp/ijkplayer/android/contrib
/Users/senrsl/temp/ijkplayer/android/contrib
/Users/senrsl/temp/ijkplayer/android/contrib
SENRSL:contrib senrsl$
环境变量名字也是有要求的。。。。
SENRSL:contrib senrsl$ ./compile-openssl.sh all8)编译ffmpeg
====================
[*] check archs
====================
FF_ALL_ARCHS = armv5 armv7a arm64 x86 x86_64
FF_ACT_ARCHS = armv5 armv7a arm64 x86 x86_64
You must define ANDROID_NDK before starting.
They must point to your NDK directories.
SENRSL:contrib senrsl$ export ANDROID_NDK=~/android/android-ndk-r14b
SENRSL:contrib senrsl$ export PATH=$ANDROID_NDK:$PATH
SENRSL:contrib senrsl$ echo $ANDROID_NDK
/Users/senrsl/android/android-ndk-r14b
SENRSL:contrib senrsl$ ./compile-openssl.sh all
====================
[*] check archs
====================
FF_ALL_ARCHS = armv5 armv7a arm64 x86 x86_64
FF_ACT_ARCHS = armv5 armv7a arm64 x86 x86_64
--------------------
[*] make NDK standalone toolchain
--------------------
build on Darwin x86_64
ANDROID_NDK=/Users/senrsl/android/android-ndk-r14b
IJK_NDK_REL=14.1.3816874
NDKr14.1.3816874 detected
SENRSL:contrib senrsl$ ./compile-ffmpeg.sh all9) 编译ijkplayer
回上级目录
SENRSL:android senrsl$ ./compile-ijk.sh all10)成品
所有的东西都在这里面了。。。。
SENRSL:android senrsl$ ls -l ijkplayer/直接把项目作为module引进去就好了
total 48
-rw-r--r-- 1 senrsl staff 772 6 29 14:58 build.gradle
drwxr-xr-x 3 senrsl staff 96 6 29 14:58 gradle
-rw-r--r-- 1 senrsl staff 1481 6 29 14:58 gradle.properties
-rwxr-xr-x 1 senrsl staff 5080 6 29 14:58 gradlew
-rw-r--r-- 1 senrsl staff 2404 6 29 14:58 gradlew.bat
drwxr-xr-x 7 senrsl staff 224 6 29 14:58 ijkplayer-arm64
drwxr-xr-x 8 senrsl staff 256 6 29 15:57 ijkplayer-armv5
drwxr-xr-x 7 senrsl staff 224 6 29 14:58 ijkplayer-armv7a
drwxr-xr-x 6 senrsl staff 192 6 29 14:58 ijkplayer-example
drwxr-xr-x 7 senrsl staff 224 6 29 14:58 ijkplayer-exo
drwxr-xr-x 8 senrsl staff 256 6 29 15:57 ijkplayer-java
drwxr-xr-x 7 senrsl staff 224 6 29 14:58 ijkplayer-x86
drwxr-xr-x 7 senrsl staff 224 6 29 14:58 ijkplayer-x86_64
-rw-r--r-- 1 senrsl staff 211 6 29 14:58 settings.gradle
drwxr-xr-x 5 senrsl staff 160 6 29 14:58 tools
SENRSL:android senrsl$
// implementation 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8' implementation project(':ijkplayer-java') implementation project(':ijkplayer-armv5')
9,adb查看当前交互activity
SENRSL:~ senrsl$ adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p'10,android打包签名验证
Running activities (most recent first):
TaskRecord{60cb1e5 #863 I=com.miui.home/.launcher.Launcher U=0 StackId=0 sz=1}
Run #0: ActivityRecord{de4bd52 u0 com.miui.home/.launcher.Launcher t863}
Running activities (most recent first):
TaskRecord{386f4d1 #16 A=com.android.systemui U=0 StackId=6 sz=1}
Run #0: ActivityRecord{602ffd2 u0 com.android.systemui/.recents.RecentsActivity t16}
SENRSL:~ senrsl$
原来是有工具的呀
SENRSL:piaos senrsl$ ~/android/sdkas/build-tools/28.0.3/apksigner verify -v /Users/senrsl/android/Project/xxxxx/piaos/doc/release/df/release/Piaos_df_v1.5.2_release.apk上面报了很多 .version或者.pro的文件是没签名的,是不是应该想办法删掉。
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Number of signers: 1
WARNING: META-INF/android.arch.core_runtime.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
......
SENRSL:piaos senrsl$
2019年07月06日20:26:02
11,shell安装多个apk到设备
SENRSL:market senrsl$ cat install.sh遍历出来直接安装,简单粗暴
#!/usr/bin/bash
for i in `ls`; do
echo "${i}\t\c"
adb install -r "${i}"
done
SENRSL:market senrsl$
12,三方aar替换类
步骤
- SENRSL:libs senrsl$ unzip bugly_crashreport_upgrade-1.4.1.aar -d tmp
- Archive: bugly_crashreport_upgrade-1.4.1.aar
- inflating: tmp/AndroidManifest.xml
- creating: tmp/res/
- creating: tmp/res/values-en/
- inflating: tmp/res/values-en/values-en.xml
- creating: tmp/res/values/
- inflating: tmp/res/values/values.xml
- creating: tmp/res/xml/
- inflating: tmp/res/xml/provider_paths.xml
- inflating: tmp/R.txt
- inflating: tmp/classes.jar
- creating: tmp/aidl/
- creating: tmp/assets/
- creating: tmp/jni/
- creating: tmp/libs/
- SENRSL:libs senrsl$ cd tmp/
- SENRSL:tmp senrsl$ unzip classes.jar -d tmpCls
- Archive: classes.jar
- inflating: tmpCls/com/tencent/bugly/proguard/a.class
- inflating: tmpCls/com/tencent/bugly/proguard/b.class
- ...
- SENRSL:tmp senrsl$ jar cvf cls.jar -C tmpCls/ .
- 已添加清单
- 正在添加: .DS_Store(输入 = 6148) (输出 = 396)(压缩了 93%)
- 正在添加: com/(输入 = 0) (输出 = 0)(存储了 0%)
- ...
- 正在添加: com/tencent/bugly/BuglyStrategy.class(输入 = 4238) (输出 = 1477)(压缩了 65%)
- SENRSL:tmp senrsl$ cd ..
- SENRSL:libs senrsl$ jar cvf aa.aar -C tmp/ .
- 已添加清单
- 正在添加: res/(输入 = 0) (输出 = 0)(存储了 0%)
- 正在添加: res/values/(输入 = 0) (输出 = 0)(存储了 0%)
- 正在添加: res/values/values.xml(输入 = 1769) (输出 = 584)(压缩了 66%)
- 正在添加: res/xml/(输入 = 0) (输出 = 0)(存储了 0%)
- 正在添加: res/xml/provider_paths.xml(输入 = 404) (输出 = 213)(压缩了 47%)
- 正在添加: res/values-en/(输入 = 0) (输出 = 0)(存储了 0%)
- 正在添加: res/values-en/values-en.xml(输入 = 1771) (输出 = 475)(压缩了 73%)
- 正在添加: aidl/(输入 = 0) (输出 = 0)(存储了 0%)
- 正在添加: .DS_Store(输入 = 6148) (输出 = 333)(压缩了 94%)
- 正在添加: AndroidManifest.xml(输入 = 2078) (输出 = 719)(压缩了 65%)
- 正在添加: classes.jar(输入 = 430456) (输出 = 399888)(压缩了 7%)
- 正在添加: libs/(输入 = 0) (输出 = 0)(存储了 0%)
- 正在添加: R.txt(输入 = 1218) (输出 = 331)(压缩了 72%)
- 正在添加: jni/(输入 = 0) (输出 = 0)(存储了 0%)
- 正在添加: assets/(输入 = 0) (输出 = 0)(存储了 0%)
- SENRSL:libs senrsl$
然后发现官方不那么做是有道理的。。。。
- 解压aar;
- 进入解压目录,分析classes.jar,找到要修改的类,考到随便一个工程里,改完build,生成新的class文件;
- 18行解压classes.jar,把上面的class文件覆盖;
- 23行重打包classes.jar文件,打包时命名不能是classes,要打完再改;
- 30行打包成aar文件,然后引入项目。
13,tomcat支持软链接
先建个软链接
SENRSL:doc senrsl$ ln -s /Users/senrsl/android/Project/mtime/doc/周报_组.md weekly_group.md然后设置Tomcat开启支持软链接
SENRSL:doc senrsl$ cat ../../conf/context.xml只是增加了上面那一行。。。。
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- The contents of this file will be loaded for each web application -->
<Context>
<!-- Default set of monitored resources. If one of these changes, the -->
<!-- web application will be reloaded. -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<!-- 支持软链接 -->
<Resources allowLinking="true"></Resources>
</Context>
SENRSL:doc senrsl$
不用重启,直接生效。
14,apk签名与查看签名
SENRSL:Downloads senrsl$ jarsigner -verbose -keystore /Users/senrsl/android/Project/xxxxx -signedjar sign.apk tap_unsign.apk displayer
输入密钥库的密码短语:
输入displayer的密钥口令:
正在添加: META-INF/MANIFEST.MF
正在添加: META-INF/DISPLAYE.SF
正在添加: META-INF/DISPLAYE.RSA
正在签名: res/drawable/ic_launcher.png
正在签名: res/layout/main.xml
正在签名: AndroidManifest.xml
正在签名: resources.arsc
正在签名: classes.dex
jar 已签名。
警告:
未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (2044-08-21) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。
SENRSL:Downloads senrsl$ keytool -list -printcert -jarfile sign.apk
签名者 #1:
签名:
所有者: CN=xxx
发布者: CN=xxx
序列号: xxx
有效期为 Wed Aug 28 10:59:55 CST 2019 至 Sun Aug 21 10:59:55 CST 2044
证书指纹:
MD5: xxx
SHA1: xxx
SHA256: xxx
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3
扩展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 47 2F B8 7A 8C FD 59 CE 82 D1 FE C9 D2 C5 FB 99 G/.z..Y.........
0010: 4A A5 A9 4E J..N
]
]
SENRSL:Downloads senrsl$
15,秘钥登录GCP
SENRSL:Downloads senrsl$ cat ~/.ssh/最近好像墙的很频繁啊。。。。
id_ed25519 id_ed25519.pub id_rsa id_rsa.pub known_hosts
SENRSL:Downloads senrsl$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC0sime70zhk9ssJ+rQ09B+L7wKH9DflJvDaatiG/peDj....
把上面这一串,写入Compute Engine(计算引擎) -> 中继资料(元数据) -> ssh,会自动加入到下面那个文件里。
SENRSL:Downloads senrsl$ ssh -i id_pub senRsl@34.80.46.5
Warning: Identity file id_pub not accessible: No such file or directory.
Last login: Thu Sep 26 16:42:16 2019 from 123.120.59.116
[dong_M@instance-cd ~]$ pwd
/home/dong_M
[dong_M@instance-cd ~]$ cat ~/.ssh/authorized_keys
# Added by Google
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC0sime70zhk9ssJ+rQ09B+L7wKH9DflJvDaatiG/peDj....
[dong_M@instance-cd ~]$
折腾半天竟然是域名解析出问题了。。。。
16,gradlew 强制刷新缓存
老问题了,纨绔玩库的人经常遇到。。。。
SENRSL:xxxxxx senrsl$ ./gradlew (build) --refresh-dependencies--info
然而并没有什么卵用。。。。
17,CentOS 7安装 Apache
安装Apache,然后配置。
[root@ss-cd2 ~]# yum install httpd
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.sonn.com
* epel: d2lzkl7pfhq30w.cloudfront.net
* extras: mirrors.vcea.wsu.edu
* updates: mirrors.cat.pdx.edu
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-90.el7.centos 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-90.el7.centos,它被软件包 httpd-2.4.6-90.el7.centos.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-90.el7.centos.x86_64 需要
--> 正在处理依赖关系 libaprutil-1.so.0()(64bit),它被软件包 httpd-2.4.6-90.el7.centos.x86_64 需要
--> 正在处理依赖关系 libapr-1.so.0()(64bit),它被软件包 httpd-2.4.6-90.el7.centos.x86_64 需要
--> 正在检查事务
---> 软件包 apr.x86_64.0.1.4.8-5.el7 将被 安装
---> 软件包 apr-util.x86_64.0.1.5.2-6.el7 将被 安装
---> 软件包 httpd-tools.x86_64.0.2.4.6-90.el7.centos 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
========================================================================================================================================================
Package 架构 版本 源 大小
========================================================================================================================================================
正在安装:
httpd x86_64 2.4.6-90.el7.centos base 2.7 M
为依赖而安装:
apr x86_64 1.4.8-5.el7 base 103 k
apr-util x86_64 1.5.2-6.el7 base 92 k
httpd-tools x86_64 2.4.6-90.el7.centos base 91 k
mailcap noarch 2.1.41-2.el7 base 31 k
事务概要
========================================================================================================================================================
安装 1 软件包 (+4 依赖软件包)
总下载量:3.0 M
安装大小:10 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:00
(2/5): apr-1.4.8-5.el7.x86_64.rpm | 103 kB 00:00:00
(3/5): httpd-tools-2.4.6-90.el7.centos.x86_64.rpm | 91 kB 00:00:00
(4/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:00
(5/5): httpd-2.4.6-90.el7.centos.x86_64.rpm | 2.7 MB 00:00:00
--------------------------------------------------------------------------------------------------------------------------------------------------------
总计 2.2 MB/s | 3.0 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : apr-1.4.8-5.el7.x86_64 1/5
正在安装 : apr-util-1.5.2-6.el7.x86_64 2/5
正在安装 : httpd-tools-2.4.6-90.el7.centos.x86_64 3/5
正在安装 : mailcap-2.1.41-2.el7.noarch 4/5
正在安装 : httpd-2.4.6-90.el7.centos.x86_64 5/5
验证中 : apr-1.4.8-5.el7.x86_64 1/5
验证中 : mailcap-2.1.41-2.el7.noarch 2/5
验证中 : httpd-tools-2.4.6-90.el7.centos.x86_64 3/5
验证中 : apr-util-1.5.2-6.el7.x86_64 4/5
验证中 : httpd-2.4.6-90.el7.centos.x86_64 5/5
已安装:
httpd.x86_64 0:2.4.6-90.el7.centos
作为依赖被安装:
apr.x86_64 0:1.4.8-5.el7 apr-util.x86_64 0:1.5.2-6.el7 httpd-tools.x86_64 0:2.4.6-90.el7.centos mailcap.noarch 0:2.1.41-2.el7
完毕!
[root@ss-cd2 ~]# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@ss-cd2 ~]# systemctl is-enabled httpd.service
enabled
[root@ss-cd2 ~]# systemctl start httpd.service
[root@ss-cd2 ~]#
[root@ss-cd2 var]# cd /var/www/html/默认目录
[root@ss-cd2 html]# ls
[root@ss-cd2 html]# ll
总用量 0
[root@ss-cd2 html]# ls /etc/httpd/conf/
httpd.conf magic
[root@ss-cd2 html]# ls /etc/httpd/conf.
conf.d/ conf.modules.d/
[root@ss-cd2 html]# ls /etc/httpd/conf.d/
autoindex.conf README userdir.conf welcome.conf
[root@ss-cd2 html]#
[root@ss-cd2 html]# cat /etc/httpd/conf.d/autoindex.conf
#
# Directives controlling the display of server-generated directory listings.
#
# Required modules: mod_authz_core, mod_authz_host,
# mod_autoindex, mod_alias
#
# To see the listing of a directory, the Options directive for the
# directory must include "Indexes", and the directory must not contain
# a file matching those listed in the DirectoryIndex directive.
#
#
# IndexOptions: Controls the appearance of server-generated directory
# listings.
#
IndexOptions FancyIndexing HTMLTable VersionSort
# We include the /icons/ alias for FancyIndexed directory listings. If
# you do not use FancyIndexing, you may comment this out.
#
Alias /icons/ "/usr/share/httpd/icons/"
<Directory "/usr/share/httpd/icons">
Options Indexes MultiViews FollowSymlinks
AllowOverride None
Require all granted
</Directory>
#
# AddIcon* directives tell the server which icon to show for different
# files or filename extensions. These are only displayed for
# FancyIndexed directories.
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif /core
AddIcon /icons/bomb.gif */core.*
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
#
# DefaultIcon is which icon to show for files which do not have an icon
# explicitly set.
#
DefaultIcon /icons/unknown.gif
#
# AddDescription allows you to place a short description after a file in
# server-generated indexes. These are only displayed for FancyIndexed
# directories.
# Format: AddDescription "description" filename
#
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
#
# ReadmeName is the name of the README file the server will look for by
# default, and append to directory listings.
#
# HeaderName is the name of a file which should be prepended to
# directory indexes.
ReadmeName README.html
HeaderName HEADER.html
#
# IndexIgnore is a set of filenames which directory indexing should ignore
# and not include in the listing. Shell-style wildcarding is permitted.
#
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
[root@ss-cd2 html]# cat /etc/httpd/conf.d/userdir.conf
#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.
#
# The path to the end user account 'public_html' directory must be
# accessible to the webserver userid. This usually means that ~userid
# must have permissions of 711, ~userid/public_html must have permissions
# of 755, and documents contained therein must be world-readable.
# Otherwise, the client will only receive a "403 Forbidden" message.
#
<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
UserDir disabled
#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
#UserDir public_html
</IfModule>
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>
[root@ss-cd2 html]# cat /etc/httpd/conf.d/welcome.conf
#
# This configuration file enables the default "Welcome" page if there
# is no default index page present for the root URL. To disable the
# Welcome page, comment out all the lines below.
#
# NOTE: if this file is removed, it will be restored on upgrades.
#
<LocationMatch "^/+$">
Options -Indexes
ErrorDocument 403 /.noindex.html
</LocationMatch>
<Directory /usr/share/httpd/noindex>
AllowOverride None
Require all granted
</Directory>
Alias /.noindex.html /usr/share/httpd/noindex/index.html
Alias /noindex/css/bootstrap.min.css /usr/share/httpd/noindex/css/bootstrap.min.css
Alias /noindex/css/open-sans.css /usr/share/httpd/noindex/css/open-sans.css
Alias /images/apache_pb.gif /usr/share/httpd/noindex/images/apache_pb.gif
Alias /images/poweredby.png /usr/share/httpd/noindex/images/poweredby.png
[root@ss-cd2 html]#
[root@ss-cd2 noindex]# cp error.html /var/www/html/貌似没啥用,反正活不过两天。。。。
[root@ss-cd2 noindex]# ls
error.html index.html
[root@ss-cd2 noindex]# rm error.html
rm:是否删除普通文件 "error.html"?yesss
[root@ss-cd2 noindex]# ls
index.html
[root@ss-cd2 noindex]# cat index.html
<html>
<script language="javascript">location.href='https://senrsl.blogspot.com/'</script>
<head><title>SENRSL</title>
</html>
[root@ss-cd2 noindex]# exit
登出
[dong_M@ss-cd2 ~]$ exit
登出
Connection to 34.97.196.61 closed.
SENRSL:Downloads senrsl$
18,UML component fragmentastah,超级难用啊。。。。
片段类型
|
名称
|
说明
|
Opt
|
选项
|
包含一个可能发生或可能不发生的序列。 可以在临界中指定序列发生的条件。
|
Alt
|
抉择
|
包含一个片段列表,这些片段包含备选消息序列。 在任何场合下只发生一个序列。
可以在每个片段中设置一个临界来指示该片段可以运行的条件。 else 的临界指示其他任何临界都不为 True 时应运行的片段。 如果所有临界都为 False 并且没有 else,则不执行任何片段。
|
Loop
|
循环
|
片段重复一定次数。 可以在临界中指示片段重复的条件。
Loop 组合片段具有“Min”和“Max”属性,它们指示片段可以重复的最小和最大次数。 默认值是无限制。
|
Break
|
中断
|
如果执行此片段,则放弃序列的其余部分。 可以使用临界来指示发生中断的条件。
|
Par
|
并行
|
并行处理。 片段中的事件可以交错。
|
Critical
|
关键
|
用在 Par 或 Seq 片段中。 指示此片段中的消息不得与其他消息交错。
|
Seq
|
弱顺序
|
有两个或更多操作数片段。 涉及同一生命线的消息必须以片段的顺序发生。 如果消息涉及的生命线不同,来自不同片段的消息可能会并行交错。
|
Strict
|
强顺序
|
有两个或更多操作数片段。 这些片段必须按给定顺序发生。
|
有关如何解释序列的片段
默认情况下,序列图表明可能发生的一系列消息。 在运行的系统中,可能会出现您未选择显示在关系图上的其他消息。
以下片段类型可用于更改此释义:
片段类型
|
名称
|
说明
|
Consider
|
考虑
|
指定此片段描述的消息列表。 其他消息可发生在运行的系统中,但对此描述来说意义不大。
在“Messages”属性中键入该列表。
|
Ignore
|
忽略
|
此片段未描述的消息列表。 这些消息可发生在运行的系统中,但对此描述来说意义不大。
在“Messages”属性中键入该列表。
|
Assert
|
断言
|
操作数片段指定唯一有效的序列。 通常用在 Consider 或 Ignore 片段中。
|
Neg
|
否定
|
此片段中显示的序列不得发生。 通常用在 Consider 或 Ignore 片段中。
|
19,mac os default pip
原来是自带的
SENRSL:publish senrsl$ sudo python -m ensurepip --default-pip还是得找官方文档 packaging.python.org/tutorials/installing-packages/
Password:
The directory '/Users/senrsl/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/senrsl/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Looking in links: /tmp/tmpzFfFhX
Requirement already satisfied: setuptools in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (41.0.1)
Collecting pip
Installing collected packages: pip
Successfully installed pip-18.1
SENRSL:publish senrsl$
20,Download error on https://pypi.org/simple/
mac 默认Python2.7.16,死活不行,搞不定,只好安Python3.。。。
SENRSL:publish senrsl$ python --version然后安Python3,brew还报权限问题,下的官方pkg安好后面直接就好了。。。。
Python 2.7.16
SENRSL:publish senrsl$ python3 --version
Python 3.8.1
SENRSL:publish senrsl$ pip --version
pip 18.1 from /Library/Python/2.7/site-packages/pip (python 2.7)
SENRSL:publish senrsl$ pip3 --version
pip 19.2.3 from /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pip (python 3.8)
SENRSL:publish senrsl$
www.python.org/downloads/mac-osx/
浪费一晚上。。。。
。。。。
最终又回到这个问题
SENRSL:publish senrsl$ pip install oss2屮
Collecting oss2
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x10eb43e10>: Failed to establish a new connection: [Errno 61] Connection refused',)': /simple/oss2/
Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x10eb43690>: Failed to establish a new connection: [Errno 61] Connection refused',)': /simple/oss2/
Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x10eb43b90>: Failed to establish a new connection: [Errno 61] Connection refused',)': /simple/oss2/
Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x10eb84090>: Failed to establish a new connection: [Errno 61] Connection refused',)': /simple/oss2/
Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x10eb841d0>: Failed to establish a new connection: [Errno 61] Connection refused',)': /simple/oss2/
Could not find a version that satisfies the requirement oss2 (from versions: )
No matching distribution found for oss2
You are using pip version 18.1, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
SENRSL:publish senrsl$
最终,这个问题竟然是因为 没有这么挂代理。。。。
SENRSL:publish senrsl$ sudo pip install oss2 --proxy="127.0.0.1:1087"
Password:
The directory '/Users/senrsl/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/senrsl/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting oss2
Collecting aliyun-python-sdk-core>=2.6.2 (from oss2)
Collecting aliyun-python-sdk-kms>=2.4.1 (from oss2)
Collecting crcmod>=1.7 (from oss2)
Collecting requests!=2.9.0 (from oss2)
Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
100% |████████████████████████████████| 61kB 157kB/s
Collecting pycryptodome>=3.4.7 (from oss2)
Downloading https://files.pythonhosted.org/packages/1f/23/e45f03137e496dc4f106e150cdeaf59dbdeb1a1ae70ff3e327b955dc5931/pycryptodome-3.9.4-cp27-cp27m-macosx_10_6_intel.whl (10.1MB)
100% |████████████████████████████████| 10.1MB 3.6MB/s
Collecting jmespath<1.0.0,>=0.9.3 (from aliyun-python-sdk-core>=2.6.2->oss2)
Downloading https://files.pythonhosted.org/packages/83/94/7179c3832a6d45b266ddb2aac329e101367fbdb11f425f13771d27f225bb/jmespath-0.9.4-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests!=2.9.0->oss2)
Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
100% |████████████████████████████████| 143kB 1.1MB/s
Collecting idna<2.9,>=2.5 (from requests!=2.9.0->oss2)
Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
100% |████████████████████████████████| 61kB 11.9MB/s
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests!=2.9.0->oss2)
Downloading https://files.pythonhosted.org/packages/b4/40/a9837291310ee1ccc242ceb6ebfd9eb21539649f193a7c8c86ba15b98539/urllib3-1.25.7-py2.py3-none-any.whl (125kB)
100% |████████████████████████████████| 133kB 954kB/s
Collecting certifi>=2017.4.17 (from requests!=2.9.0->oss2)
Downloading https://files.pythonhosted.org/packages/b9/63/df50cac98ea0d5b006c55a399c3bf1db9da7b5a24de7890bc9cfd5dd9e99/certifi-2019.11.28-py2.py3-none-any.whl (156kB)
100% |████████████████████████████████| 163kB 1.0MB/s
Installing collected packages: pycryptodome, jmespath, aliyun-python-sdk-core, aliyun-python-sdk-kms, crcmod, chardet, idna, urllib3, certifi, requests, oss2
Successfully installed aliyun-python-sdk-core-2.13.13 aliyun-python-sdk-kms-2.9.0 certifi-2019.11.28 chardet-3.0.4 crcmod-1.7 idna-2.8 jmespath-0.9.4 oss2-2.9.1 pycryptodome-3.9.4 requests-2.22.0 urllib3-1.25.7
You are using pip version 18.1, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
SENRSL:publish senrsl$
21,android studio 每次完全退出导入的code style会失效
官方的issue
issuetracker.google.com/issues/78097962
方法一,每个项目导一下,应用到项目
github.com/square/java-code-styles/issues/63
stackoverflow.com/questions/36882427/android-studio-resetting-changes-to-default-code-style
但是这个每个项目都要单独导
需要一个全局的
全局的试了几个都不行,现在是配置在项目里,然后上 git 多人同步。。。。
22,反编译重打包
好久没弄,看起来简单多了
SENRSL:decode senrsl$ cd output/安到手机上正常用。。。。
SENRSL:output senrsl$ java -jar ../apktool_2.4.1.jar d JyData_P_df_v1.2.0_release.apk
I: Using Apktool 2.4.1 on JyData_P_df_v1.2.0_release.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /Users/senrsl/Library/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
W: Cant find 9patch chunk in file: "drawable-hdpi-v4/loading_bg.9.png". Renaming it to *.png.
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
SENRSL:output senrsl$ java -jar ../apktool_2.4.1.jar b *
I: Using Apktool 2.4.1
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
W: Unknown file type, ignoring: JyData_P_df_v1.2.0_release/smali/.DS_Store
W: Unknown file type, ignoring: JyData_P_df_v1.2.0_release/smali/android/.DS_Store
W: Unknown file type, ignoring: JyData_P_df_v1.2.0_release/smali/android/arch/.DS_Store
W: Unknown file type, ignoring: JyData_P_df_v1.2.0_release/smali/dc/.DS_Store
W: Unknown file type, ignoring: JyData_P_df_v1.2.0_release/smali/dc/android/.DS_Store
W: Unknown file type, ignoring: JyData_P_df_v1.2.0_release/smali/dc/android/base/.DS_Store
I: Checking whether resources has changed...
I: Building resources...
I: Copying libs... (/lib)
I: Building apk file...
I: Copying unknown files/dir...
I: Built apk...
SENRSL:output senrsl$ ls
SENRSL:output senrsl$ jarsigner -verbose -keystore scanc -signedjar out.apk unsigned.apk scanc
输入密钥库的密码短语:
输入scanc的密钥口令:
正在添加: META-INF/MANIFEST.MF
正在添加: META-INF/SCANC.SF
正在添加: META-INF/SCANC.RSA
正在签名: resources.arsc
正在签名: res/anim/design_snackbar_out.xml
正在签名: okhttp3/internal/publicsuffix/publicsuffixes.gz
jar 已签名。
警告:
未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (2044-12-03) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。
SENRSL:output senrsl$
然后照着反编企业微信,重打包报
brut.androlib.AndrolibException: brut.common.BrutException: could not exec (exit code = 1): [/var/folders/gz/_vvsw5mx4gl5ckbb2fjj4cxw0000gn/T/brut_util_Jar_6544294354773367553.tmp, p, --forced-package-id, 127, --min-sdk-version, 19, --target-sdk-version, 28, --version-code, 12028, --version-name, 3.0.2, --no-version-vectors, -F, /var/folders/gz/_vvsw5mx4gl5ckbb2fjj4cxw0000gn/T/APKTOOL4879823648135520338.tmp, -e, /var/folders/gz/_vvsw5mx4gl5ckbb2fjj4cxw0000gn/T/APKTOOL3941970681430221720.tmp, -0, arsc, -I, /Users/senrsl/Library/apktool/framework/1.apk, -S, /Users/senrsl/tools/decode/output/wxwork/res, -M, /Users/senrsl/tools/decode/output/wxwork/AndroidManifest.xml]然后 反编译的时候 加个 -r 就行了
SENRSL:output senrsl$ java -jar ../apktool_2.4.1.jar -r d wxwork_android_3.0.2.12028_100001.apk -o wxwork打完的包少了十几M。。。。。
I: Using Apktool 2.4.1 on wxwork_android_3.0.2.12028_100001.apk
I: Copying raw resources...
I: Baksmaling classes.dex...
I: Baksmaling classes2.dex...
I: Baksmaling classes3.dex...
I: Baksmaling classes4.dex...
I: Baksmaling classes5.dex...
I: Baksmaling classes6.dex...
I: Baksmaling classes7.dex...
I: Baksmaling classes8.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
I: Copying META-INF/services directory
SENRSL:output senrsl$
SENRSL:output senrsl$ java -jar ../apktool_2.4.1.jar b wxwork
I: Using Apktool 2.4.1
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes7 folder into classes7.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes6 folder into classes6.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes8 folder into classes8.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes3 folder into classes3.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes4 folder into classes4.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes5 folder into classes5.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes2 folder into classes2.dex...
I: Checking whether resources has changed...
I: Copying raw resources...
I: Copying libs... (/lib)
I: Copying libs... (/kotlin)
I: Copying libs... (/META-INF/services)
I: Building apk file...
I: Copying unknown files/dir...
I: Built apk...
SENRSL:output senrsl$
SENRSL:output senrsl$ jarsigner -verbose -keystore scanc -signedjar out.apk wxwork/dist/wxwork_android_3.0.2.12028_100001.apk scanc原来是少了个r目录,直接解压缩原包,把 r 目录复制到 wxwork/build/ 下,重新执行打包命令,会增量编译出 apk
输入密钥库的密码短语:
输入scanc的密钥口令:
正在添加: META-INF/MANIFEST.MF
正在添加: META-INF/SCANC.SF
正在添加: META-INF/SCANC.RSA
正在签名: resources.arsc
正在签名: classes8.dex
正在签名: AndroidManifest.xml
正在签名: kotlin/ExperimentalMultiplatform.kotlin_metadata
就能正常打开了。。。。
手机号登录成功,坐等封号。。。。
反编jar
解压缩的apk包,把 要改的classes.dex拷出来
SENRSL:output senrsl$ sh ../dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh classes.dex
dex2jar classes.dex -> ./classes-dex2jar.jar
WARN: ignored invalid inner class name , treat as anonymous inner class.
WARN: ignored invalid inner class name , treat as anonymous inner class.
WARN: ignored invalid inner class name , treat as anonymous inner class.
WARN: ignored invalid inner class name , treat as anonymous inner class.
WARN: ignored invalid inner class name , treat as anonymous inner class.
WARN: ignored invalid inner class name , treat as anonymous inner class.
WARN: ignored invalid inner class name , treat as anonymous inner class.
WARN: ignored invalid inner class name , treat as anonymous inner class.
SENRSL:output senrsl$
23,to work with multiple hotfixes at the same time
在当前项目目录,执行开启配置
git config --add gitflow.multi-release true
24,mac加密压缩zip
SENRSL:Downloads senrsl$ zip -e 信报.zip 个人信用报告.pdf
Enter password:
Verify password:
adding: 个人信用报告.pdf (deflated 2%)
SENRSL:Downloads senrsl$
25,屏幕进水,通过截屏配合adb安个远程控制
上周手机掉马桶后的应对方案。。。。
SENRSL:Downloads senrsl$ adb shell input swipe 50 250 250 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 50 250 250 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 50 250 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb shell input swipe 250 250 50 250 500
SENRSL:Downloads senrsl$ adb install AirDroid_4.2.5.5_airdroidhp.apk
Performing Streamed Install
Success
SENRSL:Downloads senrsl$ adb shell am start -n com.sand.airdroid/com.sand.airdroid.ui.splash.SplashActivity_
Starting: Intent { cmp=com.sand.airdroid/.ui.splash.SplashActivity_ }
SENRSL:Downloads senrsl$ adb shell input tap 1514 806
SENRSL:Downloads senrsl$ adb shell input tap 1514 806
SENRSL:Downloads senrsl$ adb shell input tap 806 1514
SENRSL:Downloads senrsl$ adb shell input tap 242 2946
SENRSL:Downloads senrsl$ adb shell input tap 242 2046
SENRSL:Downloads senrsl$ adb shell input tap 173 503
SENRSL:Downloads senrsl$ adb shell input tap 697 1329
SENRSL:Downloads senrsl$ adb shell input text dong_M@yeah.net
SENRSL:Downloads senrsl$ adb shell input tap 170 622
SENRSL:Downloads senrsl$ adb shell input text bbbbbb
SENRSL:Downloads senrsl$ adb shell input tap 400 830
SENRSL:Downloads senrsl$ adb shell reboot
adb server version (40) doesn't match this client (41); killing...
* daemon started successfully
SENRSL:Downloads senrsl$ adb shell am start -n com.sand.airdroid/com.sand.airdroid.ui.splash.SplashActivity_
Starting: Intent { cmp=com.sand.airdroid/.ui.splash.SplashActivity_ }
SENRSL:Downloads senrsl$ adb shell input tap 806 1514
SENRSL:Downloads senrsl$ adb shell input tap 242 2946
SENRSL:Downloads senrsl$ adb shell input tap 242 2046
SENRSL:Downloads senrsl$ adb shell input tap 173 503
SENRSL:Downloads senrsl$ adb shell input text dong_M@yeah.net
SENRSL:Downloads senrsl$ adb shell input tap 170 622
SENRSL:Downloads senrsl$ adb shell input text aaaaaa
SENRSL:Downloads senrsl$ adb shell input tap 400 830
SENRSL:Downloads senrsl$ adb shell input tap 998 1379
SENRSL:Downloads senrsl$ adb shell input tap 760 1218
SENRSL:Downloads senrsl$ adb shell input tap 469 1804
SENRSL:Downloads senrsl$ adb shell input tap 776 2007
SENRSL:Downloads senrsl$ adb shell input tap 867 1311
SENRSL:Downloads senrsl$ adb shell input tap 567 1627
SENRSL:Downloads senrsl$ adb shell input tap 951 1644
SENRSL:Downloads senrsl$ adb shell input tap 520 1625
SENRSL:Downloads senrsl$ adb shell input keyevent 3
SENRSL:Downloads senrsl$ adb shell input tap 406 1678
SENRSL:Downloads senrsl$ adb shell input tap 742 2020
SENRSL:Downloads senrsl$ adb shell input tap 319 2020
SENRSL:Downloads senrsl$ adb shell input tap 696 1772
SENRSL:Downloads senrsl$ adb shell input tap 914 488
SENRSL:Downloads senrsl$ adb shell input tap 268 1981
SENRSL:Downloads senrsl$ adb shell input tap 924 1076
SENRSL:Downloads senrsl$ adb shell input tap 715 1289
SENRSL:Downloads senrsl$ adb shell input tap 715 1289
SENRSL:Downloads senrsl$ adb shell input tap 715 1289
SENRSL:Downloads senrsl$ adb shell input tap 715 1289
SENRSL:Downloads senrsl$ adb shell input tap 715 1289
SENRSL:Downloads senrsl$ adb shell am start -n com.sand.airdroid/com.sand.airdroid.ui.splash.SplashActivity_
Starting: Intent { cmp=com.sand.airdroid/.ui.splash.SplashActivity_ }
Warning: Activity not started, its current task has been brought to the front
SENRSL:Downloads senrsl$ adb shell input keyevent 4
SENRSL:Downloads senrsl$ adb shell input tap 501 1635
SENRSL:Downloads senrsl$
2020年06月19日20:01:37
--
senRsl
2019年05月31日14:35:39
senRsl
2019年05月31日14:35:39
没有评论 :
发表评论